В Airflow я создаю ветки с различными операторами с циклом for, мой код выглядит так:
for table in ['messages', 'conversations']:
Operator1 with operator1.task_id = 'operator1_{}'.format(table)
Operator1 does kwargs['ti'].xcom_push(key='file_name', value='y')
Operator2 is a BashOperator that needs to run:
bash_command = "echo {{ ti.xcom_pull(task_ids='operator1_{}', key='file_name') }}".format(table)
Operator1 >> Operator2
Но в интерфейсе команды отображаются так:
echo { ti.xcom_pull(task_ids='operator1_messages', key='file_name') }
echo { ti.xcom_pull(task_ids='operator1_conversations', key='file_name') }
Как мне написать команду bash_command, чтобы Airflow правильно интерпретировал шаблон?
Если я пишу напрямую
bash_command = "echo {{ ti.xcom_pull(task_ids='operator1_messages', key='file_name') }}"
, это работает, но я хочу создать эту команду из цикла for.
Спасибо!