我已经能够使用BaseOperator中的函数render_template
成功渲染Jinja模板。
我的问题是,是否有人知道在Rendered
或Rendered Template
标签下将呈现字符串转换为用户界面的要求?
参考用户界面中的此标签:
这里的任何帮助或指导都将不胜感激。
答案 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)。