我想在不使用Airflow UI的情况下创建Mongo连接(默认情况除外)。
可以使用环境在气流管道中创建连接 变量。环境变量必须具有前缀 AIRFLOW_CONN_(用于Airflow),其值采用URI格式以使用 连接正确。
在引用Airflow管道中的连接时,conn_id 应该是不带前缀的变量名。例如,如果 conn_id命名为postgres_master,环境变量应 被命名为AIRFLOW_CONN_POSTGRES_MASTER(请注意环境 变量必须全部为大写。)
我尝试在使用Puckel docker image时应用此方法。
这是使用该镜像的docker组合:
version: '2.1'
services:
postgres:
image: postgres:9.6
environment:
- POSTGRES_USER=airflow
- POSTGRES_PASSWORD=airflow
- POSTGRES_DB=airflow
webserver:
image: puckel/docker-airflow:1.10.6
restart: always
depends_on:
- postgres
environment:
- LOAD_EX=n
- EXECUTOR=Local
- AIRFLOW_CONN_MY_MONGO=mongodb://mongo:27017
volumes:
- ./src/:/usr/local/airflow/dags
- ./requirements.txt:/requirements.txt
ports:
- "8080:8080"
command: webserver
healthcheck:
test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
interval: 30s
timeout: 30s
retries: 3
请注意AIRFLOW_CONN_MY_MONGO=mongodb://mongo:27017
行,正如Airflow文档所建议的那样,我在其中传递环境变量。
这里的问题是,当我在UI中列出连接时,没有创建任何my_mongo
连接。
有什么建议吗?谢谢!
答案 0 :(得分:3)
使用环境变量创建连接时,该连接不会在UI中列出。
原因:
如何测试我的连接?
答案 1 :(得分:0)
我读了一个Puckel issue,他们提到创建了连接,但未在UI中显示该连接。我对其进行了测试,并且实际上在DAG中使用时,该连接可以正常工作。