如何从 Python 脚本中触发气流 DAG 运行?

2024-03-06

使用 apache airflow,我创建了一些 DAGS,其中一些不按计划运行。
我正在尝试找到一种方法,可以从 Python 脚本中触发特定 DAG 的运行。这可能吗?我能怎么做?

编辑 --- python 脚本将从与我所有 DAGS 所在的项目不同的项目运行


在触发 Airflow DAG 运行时,您有多种选择。

使用Python

airflow python 包提供了本地客户端 https://github.com/apache/airflow/blob/master/airflow/api/client/local_client.py您可以用于从 python 脚本中触发 dag。例如:

from airflow.api.client.local_client import Client

c = Client(None, None)
c.trigger_dag(dag_id='test_dag_id', run_id='test_run_id', conf={})

使用 Airflow CLI

您可以使用 Airflow CLI 手动触发气流中的 dags。有关如何使用 CLI 触发 DAG 的更多信息,请参阅here https://airflow.apache.org/docs/stable/cli.html#trigger_dag.

使用气流 REST API

您还可以使用 Airflow REST api 触发 DAG 运行。更多相关信息here https://airflow.apache.org/docs/stable/api.html#post--api-experimental-dags--DAG_ID--dag_runs.


python 中的第一个选项可能最适合您(这也是我过去个人的做法)。但理论上你可以使用子流程 https://docs.python.org/3/library/subprocess.html从 python 或类似的库与 CLI 交互requests https://requests.readthedocs.io/en/master/从 Python 中与 REST API 进行交互。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Python 脚本中触发气流 DAG 运行? 的相关文章

随机推荐