Docker compose Airflow成功地从S3写入和读取数据,但赢得了';t在docker compose上加载S3日志
我正在使用puckle的airflow docker()和docker compose Local Executor。该项目是通过EC2实例上的CI/CD部署的,因此我的气流不会在持久服务器上运行。(每次推送主机时都会重新启动它)。我知道我失去了一些很好的特性,但在我的设置中,一切都是由bash脚本和/或环境变量配置的。 我的设置与此答案设置类似: 我运行的是1.10.6版,因此不再需要添加Docker compose Airflow成功地从S3写入和读取数据,但赢得了';t在docker compose上加载S3日志,docker-compose,airflow,Docker Compose,Airflow,我正在使用puckle的airflow docker()和docker compose Local Executor。该项目是通过EC2实例上的CI/CD部署的,因此我的气流不会在持久服务器上运行。(每次推送主机时都会重新启动它)。我知道我失去了一些很好的特性,但在我的设置中,一切都是由bash脚本和/或环境变量配置的。 我的设置与此答案设置类似: 我运行的是1.10.6版,因此不再需要添加config/\uu init\uuuuuu.py和config/log\u class.py的旧方法 我
config/\uu init\uuuuuu.py
和config/log\u class.py
的旧方法
我对原始存储库代码所做的更改:
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
Dockerfile
以安装s3插件,如下所示:
&& pip install apache-airflow[s3,crypto,celery,password,postgres,hive,jdbc,mysql,ssh${AIRFLOW_DEPS:+,}${AIRFLOW_DEPS}]==${AIRFLOW_VERSION} \
docker compose down
和docker compose up
时,UI将显示为dag以前从未运行过(UI不会加载dag的远程日志):
结果表明,运行的事件不是从日志文件重建的。所有元数据(运行事件、用户、xconn等)都存储在外部数据库中。 一旦配置了与外部数据库的连接,一切正常