为了尝试将气流日志记录到 localstack s3 存储桶,对于本地和 kubernetes 开发环境,我按照气流文档记录到 s3。简单介绍一下,localstack是一个本地 AWS 云堆栈,其中包含本地运行的包括 s3 在内的 AWS 服务。
我将以下环境变量添加到我的气流容器中,类似于另一个堆栈溢出帖子,试图登录到我的本地 s3 存储桶。docker-compose.yaml这是我为所有气流容器添加的内容:
- AIRFLOW__CORE__REMOTE_LOGGING=True
- AIRFLOW__CORE__REMOTE_BASE_LOG_FOLDER=s3://local-airflow-logs
- AIRFLOW__CORE__REMOTE_LOG_CONN_ID=MyS3Conn
- AIRFLOW__CORE__ENCRYPT_S3_LOGS=False
Run Code Online (Sandbox Code Playgroud)
我还将我的 localstack s3 信用添加到airflow.cfg
- AIRFLOW__CORE__REMOTE_LOGGING=True
- AIRFLOW__CORE__REMOTE_BASE_LOG_FOLDER=s3://local-airflow-logs
- AIRFLOW__CORE__REMOTE_LOG_CONN_ID=MyS3Conn
- AIRFLOW__CORE__ENCRYPT_S3_LOGS=False
Run Code Online (Sandbox Code Playgroud)
此外,我还安装了 apache-airflow[hooks] 和 apache-airflow[s3],尽管根据文档并不清楚真正需要哪一个。
我按照之前的堆栈溢出帖子中的步骤尝试验证 S3Hook 是否可以写入我的 localstack s3 实例:
[MyS3Conn]
aws_access_key_id = foo
aws_secret_access_key = bar
aws_default_region = us-east-1
host = http://localstack:4572 # s3 port. not sure if this is right place …Run Code Online (Sandbox Code Playgroud)