我一直在寻找关于这个主题的各种答案,但一直未能找到有效的解决方案.
我有气流设置到Log to s3但UI似乎只使用基于文件的任务处理程序而不是指定的S3.
我有s3连接设置如下
Conn_id = my_conn_S3
Conn_type = S3
Extra = {"region_name": "us-east-1"}
Run Code Online (Sandbox Code Playgroud)
(ECS实例使用具有完全s3权限的角色)
我还创建了一个log_config文件,其中包含以下设置
remote_log_conn_id = my_conn_S3
encrypt_s3_logs = False
logging_config_class = log_config.LOGGING_CONFIG
task_log_reader = s3.task
Run Code Online (Sandbox Code Playgroud)
在我的日志配置中,我有以下设置
LOG_LEVEL = conf.get('core', 'LOGGING_LEVEL').upper()
LOG_FORMAT = conf.get('core', 'log_format')
BASE_LOG_FOLDER = conf.get('core', 'BASE_LOG_FOLDER')
PROCESSOR_LOG_FOLDER = conf.get('scheduler', 'child_process_log_directory')
FILENAME_TEMPLATE = '{{ ti.dag_id }}/{{ ti.task_id }}/{{ ts }}/{{ try_number }}.log'
PROCESSOR_FILENAME_TEMPLATE = '{{ filename }}.log'
S3_LOG_FOLDER = 's3://data-team-airflow-logs/airflow-master-tester/'
LOGGING_CONFIG = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'airflow.task': {
'format': LOG_FORMAT,
},
'airflow.processor': …Run Code Online (Sandbox Code Playgroud)