【问题标题】:Airflow: connection is not being created when using environment variables气流:使用环境变量时未创建连接
【发布时间】:2020-04-27 09:04:57
【问题描述】:

我想在不使用 Airflow UI 的情况下创建 Mongo 连接(不是默认连接)。

我从Airflow documentation阅读:

可以使用环境创建 Airflow 管道中的连接 变量。环境变量需要有前缀 AIRFLOW_CONN_ 用于 Airflow,其值为 URI 格式以使用 正确连接。

在 Airflow 管道中引用连接时,conn_id 应该是不带前缀的变量名。例如,如果 conn_id 被命名为 postgres_master 环境变量应该 被命名为 AIRFLOW_CONN_POSTGRES_MASTER(注意环境 变量必须全部大写)。

我尝试在使用 Puckel docker image 时应用此功能。

这是一个使用该图像的 docker compose:

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 连接。

有什么建议吗?谢谢!

【问题讨论】:

    标签: airflow airflow-scheduler


    【解决方案1】:

    当您使用环境变量创建连接时,该连接不会在 UI 中列出。

    原因

    • Airflow 支持通过环境变量为 DAG 中的临时作业创建连接
    • UI 中的连接实际上保存在数据库中并从中检索。由 Env vars 创建的那些不存储在 DB 中

    如何测试我的连接?

    • 创建示例 DAG 并使用您的连接运行示例作业。它应该可以正常工作。

    【讨论】:

    • 是的,我发现在 Puckel 网站上阅读了一个问题。我已经回答了自己,但我会选择你的答案,因为它更好地解释。
    【解决方案2】:

    我阅读了Puckel issue,他们提到连接已创建,但未显示在 UI 中。我对其进行了测试,事实上,当在 DAG 中使用时,连接可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多