Airflow Jinja2模板化json文件

时间:2019-07-03 10:34:38

标签: python jinja2 airflow

我将Airflow 1.10.1与Python 3.5结合使用,假设我扩展了BaseOperator运算符,并向.json添加了template_ext扩展名

template_ext = ('.json',)

然后提供包含宏占位符的.json模板文件的路径

{
  "kind": "dfareporting#report",
  "name": "{{ params.cm_report_name }}"
}

具有params参数的占位符,该占位符通过default_args传递给所有dag运算符。

args = {
    # ...
    'params': {
        'cm_report_name': "AAAA"
    }
}

但是由于某种原因,我的宏未替换为“ AAAA”。

我试图复制/粘贴bigquery_operator.py用于.sql文件的模式。

这是操作员的完整代码:https://gist.github.com/fpopic/64455b8d24acc6a7d3e6d73392b20c9f#file-cm_report_find_update_operator-py-L15

1 个答案:

答案 0 :(得分:1)

您缺少“ template_fields”参数,如下所示:

template_fields = ('sql', 'destination_dataset_table', 'labels')
template_ext = ('.sql', )