You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow中某DAG报错conn_id `java-cron`未定义,同连接其他DAG正常

解决Airflow DAG报错:conn_id java-cron未定义(同EC2连接其他DAG正常)

针对你遇到的Java-Cron-Prod_Send_Trade_Order_Status_Daily.py DAG报错airflow.exceptions.AirflowNotFoundException: The conn_id 'java-cron' isn't defined,但其他使用同一EC2连接的DAG可正常运行的问题,按以下步骤排查解决:

1. 核对DAG文件中的conn_id拼写

  • 打开目标DAG文件,搜索所有引用conn_id的代码(比如EC2Operator或其他依赖连接的组件),确认拼写是java-cron,没有大小写错误、多字符/少字符的情况。
  • 对比其他正常运行的EC2连接DAG,看它们使用的conn_id是什么——比如是否是java_cron(下划线代替短横线)或者Java-Cron(首字母大写),确保目标DAG的conn_id和正常DAG完全一致。

2. 确认java-cron连接是否存在且可见

  • 用Airflow CLI命令直接查询连接:
    airflow connections get java-cron
    
    如果返回空结果,说明该连接根本没创建,直接按照正常EC2连接的配置新建即可。
  • 如果命令返回连接信息,检查该连接的权限范围:Airflow部分版本支持给连接设置特定的DAG或用户权限,确认目标DAG所在的用户/角色有权访问这个连接。

3. 刷新Airflow元数据与服务

  • 若连接是刚创建的,可能Scheduler/Webserver还没同步元数据,重启相关服务:
    sudo systemctl restart airflow-scheduler
    sudo systemctl restart airflow-webserver
    
  • 生产环境谨慎使用airflow db init刷新元数据,避免影响现有DAG运行。

4. 清理DAG缓存与加载问题

  • 删除DAG目录下的缓存文件:
    rm -rf /usr/local/airflow/dags/__pycache__
    
  • 检查/usr/local/airflow/dags/.airflowignore文件,确认目标DAG没有被排除加载。
  • 确认airflow.cfg中的dags_folder配置指向/usr/local/airflow/dags/,确保目标DAG在正确的加载目录下。

5. 验证连接配置的正确性

  • 进入Airflow UI的Admin > Connections页面,查看java-cron的配置:
    • 确认连接类型是Amazon Web Services
    • 核对IAM角色ARN、区域、EC2实例ID等参数,和其他正常运行的EC2连接完全一致
    • 如果使用access key/secret key,确认密钥有效且有对应的EC2操作权限

内容的提问来源于stack exchange,提问作者pradip.parkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:25:09