本地部署Airflow无法访问REST API,如何修改airflow.cfg触发DAG?
Airflow REST API访问404问题解决方案
你遇到的「Airflow 404 = lots of circles」报错核心原因是实验性API默认未启用,需按你使用的Airflow版本修改airflow.cfg对应配置:
1. Airflow 1.x版本配置
找到[api]配置段,修改以下参数:
- 开启实验性API:
enable_experimental_api = True(默认值为False) - 本地测试无需鉴权的话,保持auth_backend为默认值:
auth_backend = airflow.api.auth.backend.default
配置示例:
[api] enable_experimental_api = True auth_backend = airflow.api.auth.backend.default
2. Airflow 2.x版本配置
2.x版本已废弃实验性API,优先推荐使用正式的v1版本API,路径前缀为/api/v1/,如果仍需使用旧的experimental路径,修改[api]段参数:
- 开启实验性API:
enable_experimental_api = True - 鉴权配置:本地测试可设置为无鉴权模式
auth_backends = airflow.api.auth.backend.default,若需要基础鉴权可配置为auth_backends = airflow.api.auth.backend.basic_auth
配置示例:
[api] enable_experimental_api = True auth_backends = airflow.api.auth.backend.default
3. 配置生效与验证
- 修改配置后必须重启Airflow webserver和scheduler服务
- 执行
airflow config list可查看当前生效的配置,确认参数修改成功 - 重启后访问测试接口
http://localhost:8080/api/experimental/test,正常返回{"status": "OK"}即代表配置生效
触发DAG调用示例
- 实验性API触发DAG:发送POST请求到
http://localhost:8080/api/experimental/dags/<替换为你的DAG_ID>/dag_runs,请求体可传入自定义参数 - 2.x v1版本API触发DAG:发送POST请求到
http://localhost:8080/api/v1/dags/<替换为你的DAG_ID>/dagRuns,支持更多配置参数
内容的提问来源于stack exchange,提问作者V Sree Harissh
相关产品推荐
相关产品推荐

