首页 > 解决方案 > 想在 Airflow 中使用 TriggerDagRunOperator 通过仅使用 Main-dag 和 bashoperator(子 dag 运算符)来触发许多子 dag

问题描述

无法使用 TriggerDagRunOperator 理解气流中有效载荷的概念。请帮助我以非常简单的方式理解这个术语。

标签: python-3.xairflow

解决方案


TriggerDagRunOperator触发指定的 DAG运行dag_id。这需要一个trigger_dag_idwith 类型string和一个 python_callable 参数,它是对 python 函数的引用,该函数将在传递给它的context对象和一个占位符对象obj以供您的可调用对象填充并返回,如果您想要创建 DagRun。此obj对象包含您可以在函数中修改的run_idand属性。payload

run_id应该是该 DAG 运行的唯一标识符,并且有效负载必须是可在执行该 DAG 运行时对您的任务可用的可挑选对象。你的函数头应该看起来像def foo(context, dag_run_obj):

picklable仅仅意味着它可以被pickle模块序列化。要对此有一个基本的了解,请参阅什么可以腌制和取消腌制?. pickle 协议提供了更多细节,并展示了类如何自定义流程。

参考:https ://github.com/apache/airflow/blob/d313d8d24b1969be9154b555dd91466a2489e1c7/airflow/operators/dagrun_operator.py#L37


推荐阅读