有没有办法获取触发另一个 dag 的 Dag 的名称?

Is there a way to get the name of a Dag that triggered another dag?

我希望从已触发的 Dag 中访问触发另一个 Dag 的 Dag 的名称,以进行日志记录。我一直在寻找 DagRun 和上下文的气流文档,但还没有找到方法。

您可以使用模板化字符串将“触发”DAG id 添加到 TriggerDagRunOperator 的配置文件中:

TriggerDagRunOperator(conf={"triggering_dag_id": "{{ dag.dag_id }}"}, ...)

并从触发的 DAGRun conf 中获取值。例如:

def do_something(**context):
    print(context["dag_run"].conf["triggering_dag_id"])

print_triggering_dag = PythonOperator(python_callable=do_something, ...)

如果您不想打印 conf,您还可以在浏览 -> DAG 运行 -> 最右边的列下调用检查 UI 中的 conf