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。

此條目是否有用?