【问题标题】:How do I access an airflow rendered template downstream?如何访问下游的气流渲染模板?
【发布时间】:2023-03-29 09:38:01
【问题描述】:

气流版本:1.10.12

我在传递渲染模板对象以供下游使用时遇到问题。我正在尝试从 Airflow conf 中获取两个配置变量。

from airflow import DAG
from airflow.operators.bash_operator import BashOperator

from datetime import datetime


with DAG(
    dag_id="example_trigger_target_dag",
    default_args={"owner": "airflow"},
    start_date=datetime(2021, 6, 24),
    schedule_interval='@once',
    tags=['example'],
) as dag:

    bash_task = BashOperator(
        task_id="bash_task",
        bash_command='echo "{{ conf.test }}:{{ conf.tag }}"',
        xcom_push=True
    )

基本上它传递给 xcom 的只是:,没有变量。但是,完整呈现的字符串确实显示在 rendered 选项卡中。我错过了什么吗?

编辑:变量存在于 conf 中,出于安全原因,我只是将它们替换为 testtag

【问题讨论】:

  • 你能测试bash_command='echo "{{ dag_run.conf["test"] }}:{{ dag_run.conf["tag"] }}"',吗?

标签: python airflow


【解决方案1】:

我刚刚测试了这段代码(我使用的是 Airflow 2.1.0)并得到了结果。

BashOperator(task_id='test_task',
                     bash_command='echo " VARS: {{ conf.email.email_backend '
                                  '}}:{{ conf.core.executor }}"',
                     do_xcom_push=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2015-08-07
    • 2013-11-16
    相关资源
    最近更新 更多