Я использую Airflow 1.10.1 с Python 3.5, и, допустим, я расширил оператор BaseOperator и добавил расширение .json к template_ext
template_ext = ('.json',)
а затем я указываю путь к файлу шаблона .json, содержащему заполнители макросов
{
"kind": "dfareporting#report",
"name": "{{ params.cm_report_name }}"
}
который имеет заполнитель для параметра params, который передается всем операторам dag через default_args.
args = {
# ...
'params': {
'cm_report_name': "AAAA"
}
}
Но почему-то мой макрос не заменяется на "АААА".
Я попытался скопировать/вставить шаблон, который bigquery_operator.py использует для файлов .sql.
Вот полный код оператора: https://gist.github.com/fpopic/64455b8d24acc6a7d3e6d73392b20c9f#file-cm_report_find_update_operator-py-L15






Вам не хватает параметра "template_fields", например:
template_fields = ('sql', 'destination_dataset_table', 'labels')
template_ext = ('.sql', )
template_fields должны быть полями, содержащими шаблонные строки, а не значения. В вашем случае файл, содержащий путь к файлу json
Работал, добавляяtemplate_fields = ('report_file_path', ). Спасибо!
но даже если поставить
template_fields = ('params')не работает.