Airflow 2.4.0中如何通过REST API获取全部DAG详情?
解决Airflow 2.4.0 API获取所有DAG的问题
问题原因
Airflow 2.4.0的REST API默认通过max_results_per_page配置限制单页返回的最大条目数,默认值为100。这就是你设置limit=1000却只收到100条记录的原因——API会自动将超过默认最大值的limit参数截断为100。
解决方案
方案1:修改Airflow配置(需服务权限)
- 找到Airflow的配置文件
airflow.cfg - 定位到
[api]区块,添加或修改以下配置:
数值设置为大于你实际DAG数量(比如200)即可max_results_per_page = 200 - 重启Airflow Webserver和Scheduler服务
- 再次调用API:
http://localhost:8081/api/v1/dags?limit=200&offset=0,就能一次性获取所有150个DAG
方案2:分页查询(无需修改配置)
如果没有权限修改Airflow配置,可通过分页请求获取全部数据:
- 第一次请求:
http://localhost:8081/api/v1/dags?limit=100&offset=0,获取前100条DAG - 第二次请求:
http://localhost:8081/api/v1/dags?limit=100&offset=100,获取剩余的50条DAG - 合并两次返回结果中的
dags数组即可得到全部DAG列表
额外提示
API响应的根节点会包含total_entries字段,该字段会告诉你账号下DAG的总数量,可据此计算需要分多少页请求。
内容的提问来源于stack exchange,提问作者vbala vbala
相关产品推荐
相关产品推荐

