AWS MWAA环境中DAG未在Airflow UI显示的排查求助
排查AWS MWAA DAG未显示在Airflow UI中的问题
已完成的排查操作
- 为MWAA关联角色附加S3FullAccess权限
- 重启MWAA环境
- 将Airflow UI访问方式从私有切换为公网
下一步排查方向
1. 检查DAG文件本身的合规性
- 确保DAG文件名以
.py结尾,MWAA仅识别S3/dags/目录下的.py格式文件 - 本地执行
python your_dag_file.py验证语法,MWAA会自动跳过存在语法错误的文件 - 确认DAG对象已正确实例化,未设置
dag.active = False这类主动隐藏DAG的配置
2. 查看MWAA调度器日志的解析错误
- 打开CloudWatch控制台,找到对应MWAA环境的
scheduler日志组(命名格式一般为aws-mwaa-logs-<环境名>-scheduler) - 搜索
Failed to import或DAG import error关键词,定位DAG导入失败的具体原因(如依赖包缺失、模块找不到) - 若使用自定义依赖,确认依赖包已上传至S3的
/requirements/目录(若配置了依赖层),且MWAA已完成依赖加载
3. 验证S3路径与对象权限
- 确认DAG文件上传路径与MWAA配置的DAGs前缀完全匹配:例如MWAA配置为
s3://your-bucket/dags/,则文件需在该目录或其子目录下(子目录会被递归扫描) - 检查S3对象的ACL权限:执行
aws s3api get-object-acl --bucket your-bucket --key dags/your_dag.py,确保MWAA角色有读取权限(即使角色有S3FullAccess,对象级拒绝策略也会生效) - 确认S3文件已上传完成,未因版本控制导致MWAA读取旧版本文件
4. 检查Airflow核心配置
- 登录Airflow UI,进入Admin > Configurations,核对以下配置:
dags_folder:确认值与MWAA配置的S3 DAG路径一致load_examples:若设为True,查看示例DAG是否显示,判断是单个DAG问题还是全局加载故障dag_dir_list_interval:默认300秒,需等待足够时间让调度器完成DAG扫描
5. 验证MWAA角色的信任关系
- 进入IAM控制台,查看MWAA关联角色的信任策略,确保包含以下语句:
缺失该信任关系会导致MWAA无法调用角色读取S3文件{ "Effect": "Allow", "Principal": { "Service": "airflow.amazonaws.com" }, "Action": "sts:AssumeRole" }
内容的提问来源于stack exchange,提问作者user31081998
相关产品推荐
相关产品推荐

