Airflow Jinja 渲染模板
Posted
技术标签:
【中文标题】Airflow Jinja 渲染模板【英文标题】:Airflow Jinja Rendered Template 【发布时间】:2018-05-05 01:58:55 【问题描述】:我已经能够使用 BaseOperator 中的函数render_template
成功渲染 Jinja 模板。
我的问题是,有谁知道在Rendered
或Rendered Template
选项卡下将呈现的字符串放入 UI 的要求?
在 UI 中引用此选项卡:
如有任何帮助或指导,我们将不胜感激。
【问题讨论】:
您使用的是 BashOperator、PythonOperator、您自己的自定义运算符还是其他什么? 【参考方案1】:如果您在运算符中使用模板化字段,则从模板化字段中创建的字符串将显示在那里。例如。使用 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)。
【讨论】:
非常感谢。这给了我一个例子。以上是关于Airflow Jinja 渲染模板的主要内容,如果未能解决你的问题,请参考以下文章
在 Airflow 中将 Jinja 模板变量与 BigQueryOperator 结合使用