staten12
staten12

Reputation: 785

How do I access an airflow rendered template downstream?

Airflow version: 1.10.12

I'm having trouble passing a rendered template object for use downstream. I'm trying to grab two config variables from the 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
    )

Basically what it passes to xcom is just : without the variables present. The full rendered string does show up however in the rendered tab. Am I missing something?

Edit: the variables exist in the conf, I just replaced them with test and tag for security reasons.

Upvotes: 1

Views: 572

Answers (1)

lealvcon
lealvcon

Reputation: 158

I just tested this code (I'm using Airflow 2.1.0) and got that result.

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

xcom

Upvotes: 1

Related Questions