airflow - Airflow Jinja 渲染模板
问题描述
我已经能够使用 BaseOperator 中的函数成功渲染 Jinja 模板,render_template
.
我的问题是,有谁知道在Rendered
orRendered Template
选项卡下将渲染字符串放入 UI 的要求?
在 UI 中引用此选项卡:
任何帮助或指导将不胜感激。
解决方案
如果您在 Operator 中使用模板化字段,则从模板化字段中创建的字符串将在那里显示。例如使用 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 ) 在模板化字段中。
推荐阅读
- php - 从 PHP 中的文本中删除最后一个 URL 链接的表达式
- forms - Tableau - 使用不同变量的 KPI(表单)
- python - 打开 Django 服务器时出现循环导入错误
- java - 带空格的凯撒密码解密方法
- python - 通过聚合每个桶中的不均匀元素进行批处理?
- git - 在 git add 之后,为什么文件被“重命名”?
- react-native - React Native Autocomplete Input 结果列表忽略触摸
- php - 为什么这个 Sylius 资源 API 要求提供模板?
- node.js - 无法在我的节点应用程序中使用 Microsoft 身份平台交换身份验证代码以获取访问令牌
- python - 对于 Maya,我如何在另一个函数中调用一个函数