气流在DAG中使用外部参数更改变量值

时间:2018-03-23 10:12:10

标签: python airflow

我尝试使用从外部DAG(DAG_2)接收的值更改DAG(DAG_1)中定义的变量值。

我们的想法是拥有变量' NAME'的默认值。在DAG_1内,但如果从外部DAG提供,则替换它的值。我能够成功地将所有外部提供的参数拉入DAG_1,但不能更改变量NAME的值。 DAG_1:

NAME = 'Stream_Agg_DIL_Dev_Airflow '
....
def set_config(ds, **kwargs):
   PROPERTIES_FILE_PATH = DMP_ROOT+ kwargs['dag_run'].conf['config']
   NAME = kwargs['dag_run'].conf['message']
   return PROPERTIES_FILE_PATH, NAME

def get_pull(ds, **kwargs):
   ti = kwargs['ti']
   global NAME
   NAME1 = ti.xcom_pull(task_ids='get_config_param', key='NAME')
   print('NAME1 = ' + NAME1 + ', NAME = ' + NAME)
   NAME = NAME1
   print('NAME1 = ' + NAME1 + ', NAME = ' + NAME)
第二次打印时,内部函数NAME和NAME1相同,但从其他pythonOperator打印NAME获取原始值:

NAME = 'Stream_Agg_DIL_Dev_Airflow '

0 个答案:

没有答案