Passing param to Airflow DAG from another DAG with TriggerDagRunOperator

Question:

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.

Asked By: Cristian Ispan

||

Answers:

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

Answered By: Cristian Ispan
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.