将变量传递给Airflow中的模板

时间:2018-05-16 17:18:43

标签: airflow

在Airflow中,我使用for循环创建具有不同运算符的分支,我的代码如下所示:

echo { ti.xcom_pull(task_ids='operator1_messages', key='file_name') }
echo { ti.xcom_pull(task_ids='operator1_conversations', key='file_name') }

但是在UI中,命令的呈现方式如下:

 bash_command = "echo {{ ti.xcom_pull(task_ids='operator1_messages', key='file_name') }}"

我应该如何编写bash_command让Airflow正确解释模板?

如果我直接写

char

它可以工作,但我想从for循环创建这个命令。

谢谢!

1 个答案:

答案 0 :(得分:1)

这样做是因为bash命令的.format(table)部分正在剥离外部{}。您可以通过以下方式解决此问题:

bash_command = "echo {{ ti.xcom_pull(task_ids='operator1_" + table + "', key='file_name') }}"

这是否是最好的方法可能是另一个问题。