Airflow пишет и читает из S3 успешно, но не загружает журналы S3 при docker - составить - PullRequest
0 голосов
/ 23 января 2020

Я использую воздушный поток Puckle docker ( github link ) с docker -compose-LocalExecutor. Проект развертывается через CI / CD на экземпляре EC2, поэтому мой поток данных не запускается на постоянном сервере. ( Каждый пу sh на мастере запускается после sh). Я знаю, что теряю некоторые замечательные функции, но в моей настройке все настроено с помощью bash сценария и / или переменных среды. Моя настройка аналогична настройке этого ответа: Подобный ответ настройки

Я использую версию 1.10.6 , поэтому старый метод добавления config/__init__.py и config/log_class.py больше не нужен.

Изменения, которые я внес в исходный код репозитория:

  1. Я добавил некоторые переменные окружения и изменил режим сборки на docker-compose -f docker-compose-LocalExecutor на запись / сохранение журналов на S3 и сборка из локального Dockerfile:

    webserver:
        build: .
        environment:
            - AIRFLOW__CORE__REMOTE_LOGGING=True
            - AIRFLOW__CORE__REMOTE_LOG_CONN_ID=aws_default
            - AIRFLOW__CORE__REMOTE_BASE_LOG_FOLDER=s3://path/to/logs
            - AIRFLOW_CONN_AWS_DEFAULT=s3://key:password
    
  2. Я изменил Dockerfile на строку 59 для установки плагина s3, как показано ниже:

    && pip install apache-airflow[s3,crypto,celery,password,postgres,hive,jdbc,mysql,ssh${AIRFLOW_DEPS:+,}${AIRFLOW_DEPS}]==${AIRFLOW_VERSION} \
    

Эти конфигурации работают нормально, журналы пишутся и успешно считываются с S3, как показано ниже:

enter image description here

Моя проблема:

Если я запускаю docker-compose down и docker-compose up, пользовательский интерфейс отображается так, как никогда не запускались даг (пользовательский интерфейс не будет загружать удаленные журналы даг ):

enter image description here

1 Ответ

0 голосов
/ 28 марта 2020

Оказывается, что запущенные события не перестраиваются из файлов журналов. Все метаданные (запущенные события, пользователи, xconn и т. Д. c) хранятся во внешней базе данных. После настройки подключения к внешней базе данных все работало нормально!

...