Воздушный поток: соединение не создается при использовании переменных среды - PullRequest
0 голосов
/ 09 января 2020

Я хочу создать соединение Mon go (отличное от стандартного) без использования интерфейса Airflow.

Я читаю из Документации по потоку :

Соединения в трубопроводах Airflow могут быть созданы с использованием переменных среды. Переменная окружения должна иметь префикс 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, где я передаю переменную среды как поток воздуха Документация предлагает.

Проблема здесь в том, что не создается my_mongo соединение, когда я перечисляю соединения в пользовательском интерфейсе.

Любой совет? Спасибо!

Ответы [ 2 ]

1 голос
/ 09 января 2020

Соединение не будет отображаться в пользовательском интерфейсе при его создании с переменной среды.

Причина :

  • Airflow поддерживает создание соединений через переменную среды для ad-ho c заданий в группах обеспечения доступности баз данных
  • Соединения в пользовательском интерфейсе фактически сохраняются в БД и извлекаются из нее. Созданные Env vars не хранятся в БД

Как мне проверить мое соединение?

  • Создать образец DAG и использовать ваше соединение запустить образец задания. Должно работать нормально.
0 голосов
/ 09 января 2020

Я прочитал проблему Puckel , где говорится, что соединение создано, но не отображается в пользовательском интерфейсе. Я проверил это и на самом деле соединение работает при использовании в DAG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...