airflow.providers.google.cloud.log.gcs_task_handler¶
属性¶
类¶
便捷的超类,用于配置一个以类名命名的 logger。 |
|
GCSTaskHandler 是一个 Python 日志处理器,用于处理和读取任务实例日志。 |
模块内容¶
- class airflow.providers.google.cloud.log.gcs_task_handler.GCSRemoteLogIO(context=None)[源码]¶
基类:
airflow.utils.log.logging_mixin.LoggingMixin
便捷的超类,用于配置一个以类名命名的 logger。
- base_log_folder: pathlib.Path[源码]¶
- scopes: collections.abc.Collection[str] | None[源码]¶
- property hook: airflow.providers.google.cloud.hooks.gcs.GCSHook | None[源码]¶
如果配置了 remote_log_conn_id,则返回 GCSHook。
- class airflow.providers.google.cloud.log.gcs_task_handler.GCSTaskHandler(*, base_log_folder, gcs_log_folder, gcp_key_path=None, gcp_keyfile_dict=None, gcp_scopes=_DEFAULT_SCOPESS, project_id=PROVIDE_PROJECT_ID, **kwargs)[源码]¶
基类:
airflow.utils.log.file_task_handler.FileTaskHandler
,airflow.utils.log.logging_mixin.LoggingMixin
GCSTaskHandler 是一个 Python 日志处理器,用于处理和读取任务实例日志。
它扩展了 Airflow FileTaskHandler,并支持上传和读取 GCS 远程存储中的日志。如果日志读取失败,它会从主机本地磁盘读取。
- 参数:
base_log_folder (str) – 用于存放日志的基础日志文件夹。
gcs_log_folder (str) – 保存日志的远程位置路径。它必须以
gs://
为前缀。例如:gs://bucket/remote/log/location
filename_template – 模板文件名字符串
gcp_key_path (str | None) – Google Cloud 服务账号文件 (JSON) 的路径。与 gcp_keyfile_dict 互斥。如果省略,将使用基于应用默认凭据的授权。
gcp_keyfile_dict (dict | None) – 密钥文件参数的字典。与 gcp_key_path 互斥。
gcp_scopes (collections.abc.Collection[str] | None) – 包含 OAuth2 scopes 的逗号分隔字符串
project_id (str) – 从中读取密钥的项目 ID。如果未传入,将使用凭据中的项目 ID。
delete_local_copy – 使用远程日志记录时,下载后是否应删除本地日志文件
- handler: logging.FileHandler | None = None[源码]¶
- set_context(ti, *, identifier=None)[源码]¶
向 Airflow 任务处理器提供 task_instance 上下文。
通常返回 None。但如果属性 maintain_propagate 已设置为 propagate,则返回哨兵 MAINTAIN_PROPAGATE。这会覆盖默认行为,即在调用 set_context 时将 propagate 设置为 False。在撰写本文时,此功能仅用于单元测试。
- 参数:
ti (airflow.models.taskinstance.TaskInstance) – 任务实例对象
identifier (str | None) – 如果设置,会向日志文件名添加后缀。用于在任务或触发器运行以外的上下文中将异常消息转发到任务日志。