airflow.providers.google.cloud.log.gcs_task_handler

属性

logger

GCSRemoteLogIO

便捷的超类,用于配置一个以类名命名的 logger。

GCSTaskHandler

GCSTaskHandler 是一个 Python 日志处理器,用于处理和读取任务实例日志。

模块内容

airflow.providers.google.cloud.log.gcs_task_handler.logger[源码]
class airflow.providers.google.cloud.log.gcs_task_handler.GCSRemoteLogIO(context=None)[源码]

基类: airflow.utils.log.logging_mixin.LoggingMixin

便捷的超类,用于配置一个以类名命名的 logger。

remote_base: str[源码]
base_log_folder: pathlib.Path[源码]
delete_local_copy: bool[源码]
gcp_key_path: str | None[源码]
gcp_keyfile_dict: dict | None[源码]
scopes: collections.abc.Collection[str] | None[源码]
project_id: str[源码]
upload(path, ti)[源码]

将给定的日志路径上传到远程存储。

property hook: airflow.providers.google.cloud.hooks.gcs.GCSHook | None[源码]

如果配置了 remote_log_conn_id,则返回 GCSHook。

property client: google.cloud.storage.Client[源码]

返回 GCS Client。

write(log, remote_log_location)[源码]

将日志写入远程位置并返回 True;如果出错,则静默失败并返回 False

参数:
  • log (str) – 要写入 remote_log_location 的日志

  • remote_log_location (str) – 日志在远程存储中的位置

返回:

日志是否成功写入远程位置。

返回类型:

bool

static no_log_found(exc)[源码]

给定异常,判断是否是日志未找到导致的结果。

read(relative_path, ti)[源码]
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 – 使用远程日志记录时,下载后是否应删除本地日志文件

trigger_should_wrap = True[源码]
handler: logging.FileHandler | None = None[源码]
log_relative_path = ''[源码]
closed = False[源码]
upload_on_close = True[源码]
io[源码]
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) – 如果设置,会向日志文件名添加后缀。用于在任务或触发器运行以外的上下文中将异常消息转发到任务日志。

close()[源码]

关闭并将本地日志文件上传到远程存储 GCS。

此条目是否有用?