I'm trying to pass a param to Airflow DAG from another DAG with TriggerDagRunOperator, here is the code:
@dag(default_args=default_args, catchup=False, #schedule_interval=DAG_SCHEDULE_INTERVAL,
dagrun_timeout=timedelta(seconds=3600), tags=["tag1"], doc_md=DOC_MD, max_active_runs=1)
def parent_dag(date_start="", date_end=""):
triggered_dag = TriggerDagRunOperator(
task_id='triggered_dag',
trigger_dag_id='triggered_dag',
conf={"date_start": "{{date_start}}", "date_end": "{{date_start}}"}
)
triggered_dag
dag = parent_dag()
The params date_start and date_end in parent DAG have a empty string default value, but they will normally be manually informed when triggering parent DAG.
With above code sample I'm getting this error:
jinja2.exceptions.UndefinedError: 'date_start' is undefined
Does anyone know where's the issue?
Thanks in advence.
I finally found it. You can access the parameters this way:
@dag(default_args=default_args, catchup=False, #schedule_interval=DAG_SCHEDULE_INTERVAL,
dagrun_timeout=timedelta(seconds=3600), tags=["tag1"], doc_md=DOC_MD, max_active_runs=1)
def parent_dag(date_start="", date_end=""):
triggered_dag = TriggerDagRunOperator(
task_id='triggered_dag',
trigger_dag_id='triggered_dag',
conf={"date_start": "{{params.date_start}}", "date_end": "{{params.date_start}}"}
)
triggered_dag
dag = parent_dag()
Take a look in documentation