我正在通过覆盖 BaseSensorOperator 创建的 Airflow 2 中设计一个自定义传感器 MySensor。我有一个名为的参数file
,它作为模板字段传递给我的构造函数
template_fields = ("file",)
我有一个名为 file 的 Airflow 变量,它保存参数文件的值。然后我在我的 DAG 中实例化一个任务,如下所示。
my_task = MySensor(task_id="my_task", file = "{{var.value.file}}")
这可以正常工作,因为它是一个模板字段,并且将使用存储在 Airflow 变量中的值。但是当我将此参数作为字符串传递时出现问题,即没有 Jinja 模板。
my_task = MySensor(task_id="my_task", file = "/my_test_file.jar")
这给了我一个错误AttributeError: 'MySensor' object has no attribute 'file'
。
我在这里缺少什么吗?如何将非模板化参数传递给 Airflow 2 中的模板字段