airflow.providers.google.cloud.log.gcs_task_handler

模块内容

GCSTaskHandler

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

属性

logger

airflow.providers.google.cloud.log.gcs_task_handler.logger[source]
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)[source]

基类: 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 作用域的逗号分隔字符串

  • project_id ( str ) – 从中读取密钥的项目 ID。如果未传递,将使用凭据中的项目 ID。

  • delete_local_copy – 使用远程日志记录时,本地日志文件在下载后是否应删除

trigger_should_wrap = True[source]
hook()[source]

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

client()[source]

返回 GCS 客户端。

set_context(ti, *, identifier=None)[source]

向 Airflow 任务处理程序提供 task_instance 上下文。

一般来说返回 None。但是,如果属性 maintain_propagate 已设置为传播,则返回 sentinel MAINTAIN_PROPAGATE。 这具有覆盖默认行为的效果,以便在调用 set_context 时将 propagate 设置为 False。在编写本文时,此功能仅在单元测试中使用。

参数
  • ti ( airflow.models.taskinstance.TaskInstance ) – 任务实例对象

  • identifier ( str | None ) – 如果设置,则向日志文件添加后缀。用于将异常消息从任务或触发器运行以外的上下文传递到任务日志时使用

close()[source]

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

gcs_write(log, remote_log_location)[source]

将日志写入远程位置并返回 True;发生错误时静默失败并返回 False

参数
  • log – 要写入 remote_log_location 的日志

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

返回

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

返回类型

bool

此条目是否有帮助?