子任务中的 AirFlow dag id 访问

AirFlow dag id access in sub-tasks

我有一个包含三个 bash 任务的 DAG,计划每天 运行。

我想在所有 bash 个脚本中访问 dag 实例的唯一 ID(可能是 PID)。

有什么办法吗?

我正在寻找与 Oozie 类似的功能,我们可以在工作流 xml 或 java 代码中访问 WORKFLOW_ID。

有人可以指点我在 "How to use in-build and custom variables in AirFlow DAG"

上的 AirFlow 文档吗

非常感谢 比利

我利用了 dag 的 python 对象打印出当前 dag 的名称这一事实。所以我只使用 jinja2 来更改 dag 名称:

{{ dag | replace( '<DAG: ', '' ) | replace( '>', '' ) }}

有点破解,但它有效。

因此,

clear_upstream = BashOperator( task_id='clear_upstream',
    trigger_rule='all_failed',
    bash_command="""
      echo airflow clear -t upstream_task -c -d -s {{ ts }} -e {{ ts }} {{ dag | replace( '<DAG: ', '' ) | replace( '>', '' ) }}
    """
)

可以在 jinja2 中使用点符号访问对象的属性(参见 https://airflow.apache.org/code.html#macros)。在这种情况下,它只是:

{{ dag.dag_id }}