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

Oli*_*bie 5 python directed-acyclic-graphs python-3.x airflow

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

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

Jos*_*osh 9

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

使用 Python

气流 python 包提供了一个本地客户端,可用于从 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={})
Run Code Online (Sandbox Code Playgroud)

使用气流 CLI

您可以使用 Airflow CLI 手动触发气流中的 dag。可以在此处找到有关如何使用 CLI 触发 DAG 的更多信息。

使用气流 REST API

您还可以使用 Airflow REST api 来触发 DAG 运行。更多信息在这里


python 中的第一个选项可能最适合你(这也是我个人过去的做法)。但理论上,您可以使用子进程与 Python 中的 CLI 进行交互,或者使用诸如请求之类的库与 Python 中的 REST API 进行交互。