是否可以从 Airflow 1 dag 触发 Airflow 2 dag,反之亦然?

Is it possible to trigger an Airflow 2 dag from an Airflow 1 dag, and viceversa?

我们正在新旧 Airflow 之间进行迁移,我们正在尝试实现从 Airflow1 到 Airflow2 的触发器(反之亦然),这可能吗?

由于 运行 Airflow 2 实例中的 Airflow 1 代码可能会导致错误,我假设您打算拥有两个 Airflow 实例?一个 运行 Airflow 1 和一个 运行 Airflow 2,其中 Airflow 2 DAG 触发 Airflow 1 DAG?

要从外部触发 DAG,例如另一个 Airflow 实例,您可以使用 REST API 或 CLI 来触发 DAG:

CLI (docs):

airflow dags trigger DAG_ID
# For example:
airflow dags trigger mydag-airflow1

休息 API (docs):

curl -X POST http://localhost:8080/api/v1/dags/mydag-airflow1/dagRuns

有两点需要注意:

  • REST API 和 CLI 在 Airflow 2 中被重写。如果您打算从 Airflow 1 触发到 2,则必须查找旧 REST API/CLI.[=27 的相应命令=]
  • 维护不同版本的代码库很快就会变得混乱。我建议坚持使用一个 Airflow 版本。