如何检索 Python 中所有 Airflow DAG 的列表?

How to retrieve a list of all Airflow DAGs in Python?

有 CLI 函数 airflow dags list,它列出了当前环境中的所有 DAG。 PythonAPI中有没有类似的功能?

是的。 Airflow Rest API 有 List DAGs 个端点。

GET /dags

API 也有官方 Python client,因此您可以轻松地将其与 Python 一起使用。 您可以查看 example 如何为 get_dags 设置它:

with client.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = dag_api.DAGApi(api_client)
    limit = 100
    offset = 0
    order_by = "order_by_example"
    tags = [
        "tags_example",
    ]
    only_active = True
    try:
        # List DAGs
        api_response = api_instance.get_dags(limit=limit, offset=offset, order_by=order_by, tags=tags, only_active=only_active)
        pprint(api_response)
    except client.ApiException as e:
        print("Exception when calling DAGApi->get_dags: %s\n" % e)