Airflow Jinja渲染模板

时间:2018-05-05 01:58:55

标签: airflow

我已经能够使用BaseOperator中的函数render_template成功渲染Jinja模板。

我的问题是,是否有人知道在RenderedRendered Template标签下将呈现字符串转换为用户界面的要求?

参考用户界面中的此标签: Referring to this tab in the UI

这里的任何帮助或指导都将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果在运算符中使用模板化字段,则会在那里显示模板化字段中创建的字符串。例如。使用BashOperator:

example_task = BashOperator(
    task_id='task_example_task',
    bash_command='mycommand --date {{ task_instance.execution_date }}',
    dag=dag,
)

然后bash命令将通过模板引擎解析(因为包含了Jinja字段),稍后您可以在Web UI中看到此解析的结果,如上所述。

但这些字段必须是模板化的。这可以在字段templated_fields中的代码中看到。对于BashOperator(请参阅此处的代码https://github.com/apache/incubator-airflow/blob/master/airflow/operators/bash_operator.py),这是:

template_fields = ('bash_command', 'env')

不会解析BashOperator中的其他字段。

您可以在模板字段中使用宏命令(请参阅此处https://airflow.apache.org/code.html#macros)或来自xcom的信息(请参阅此处https://airflow.apache.org/concepts.html?highlight=xcom#xcoms)。

相关问题