我在测试过程中遇到错误,有人对此有任何线索吗?
relative_path = self._render_filename(ti, ti.try_number)
AttributeError: 'str' object has no attribute 'try_number
Airflow 中出现此错误通常是因为 BaseHook 类无法再接收
str
参数[1],只能接收 ti
(TaskInstance)[2]。您可以简单地创建 BaseHook,而无需提供任何参数,例如:
my_hook = BaseHook()
[1] https://airflow.apache.org/docs/apache-airflow/stable/_modules/airflow/hooks/base.html#BaseHook
[2] https://airflow.apache.org/docs/apache-airflow/1.10.6/_modules/airflow/utils/log/logging_mixin.html
我面临着同样的问题,但就我而言,我是用字符串初始化 BaseHook
super().__init__("mystring")
删除这个“mystring”并用 None 初始化基本钩子对我有用。
此问题也可能出现在您的日志记录中。我们使用
S3TaskHandler
中的 airflow.providers.amazon.aws.log.s3_task_handler.S3TaskHandler
作为处理器处理程序类,但这是不允许的。我们将其更改为 airflow.utils.log.file_processor_handler.FileProcessorHandler
,删除了 s3_log_folder
额外参数,这解决了错误。