气流Jinja渲染模板

dil*_*lon 6 airflow

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

我的问题是,有人知道在RenderedRendered Template选项卡下将呈现的字符串放入UI的要求吗?

在用户界面中引用此标签: 在用户界面中引用此选项卡

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

tob*_*bi6 5

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

example_task = BashOperator(
    task_id='task_example_task',
    bash_command='mycommand --date {{ task_instance.execution_date }}',
    dag=dag,
)
Run Code Online (Sandbox Code Playgroud)

那么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')
Run Code Online (Sandbox Code Playgroud)

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

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

  • 非常感谢。这给我看一个例子。 (2认同)