Airflow 1.10调用DAG触发API遇403 Forbidden错误求助
解决Airflow 1.10 API调用403 Forbidden问题
以下是针对该场景的排查与修复步骤:
确认配置修改后已重启Airflow服务
修改airflow.cfg中的auth_backend后,必须重启Airflow webserver和scheduler才能让配置生效。根据部署方式执行对应命令:# 后台启动方式 airflow webserver -D airflow scheduler -D # systemd服务方式 sudo systemctl restart airflow-webserver sudo systemctl restart airflow-scheduler验证Basic Auth的正确性
避免手动构造Authorization头,直接用curl的--user参数自动处理编码逻辑:curl --user your_username:your_password -X POST http://your_airflow_host:8080/api/experimental/dags/your_dag_id/dag_runs -H "Content-Type: application/json" -d '{"conf": {}}'若该命令执行成功,说明Postman中可能存在Authorization头编码错误,建议在Postman中重新添加Basic Auth,让工具自动生成头信息,不要手动输入编码后的字符串。
检查API端点路径是否正确
Airflow 1.10使用的是实验性API,触发DAG的正确POST路径为:/api/experimental/dags/<YOUR_DAG_ID>/dag_runs切勿混淆为Airflow 2.x的稳定版API路径(
/api/v1/dags/...),路径错误可能直接导致403或404错误。检查用户权限配置
确保使用的账号具备触发DAG的权限:- 登录Airflow Web UI,进入Admin > Users
- 查看对应用户的权限组,确认其属于
Admin组,或拥有can_dag_trigger、can_dag_read等相关权限。
查看Webserver日志定位具体原因
查看Airflow webserver的日志文件(默认路径为$AIRFLOW_HOME/logs/webserver),查找403错误对应的详细日志,例如:- 认证失败的具体原因(如用户名密码不匹配)
- 权限不足的明确提示
日志信息可快速定位问题根源。
检查CSRF配置(可选)
Airflow 1.10默认开启CSRF保护,但实验性API通常会豁免CSRF检查。若遇到CSRF相关错误,可在airflow.cfg的[webserver]部分添加或修改:csrf.exempt_views = airflow.api.experimental.endpoints,airflow.api.experimental.call_endpoint修改后重启webserver即可。
内容的提问来源于stack exchange,提问作者Gomathi
相关产品推荐
相关产品推荐

