将日志写入 Azure Blob 存储

Airflow 可以配置为在 Azure Blob 存储中读取和写入任务日志。它使用现有的 Airflow 连接来读取或写入日志。如果您没有正确设置连接,此过程将失败。

请按照以下步骤启用 Azure Blob 存储日志记录

要启用此功能,必须按照此示例配置 airflow.cfg

[logging]
# Airflow can store logs remotely in AWS S3, Google Cloud Storage or Elastic Search.
# Users must supply an Airflow connection id that provides access to the storage
# location. If remote_logging is set to true, see UPDATING.md for additional
# configuration requirements.
remote_logging = True
remote_base_log_folder = wasb-base-folder/path/to/logs

[azure_remote_logging]
remote_wasb_log_container = my-container
  1. 使用 pip install apache-airflow-providers-microsoft-azure 安装提供程序软件包

  2. 确保 连接 已经设置好,并且在 remote_wasb_log_container 容器和 remote_base_log_folder 路径中具有对 Azure Blob 存储的读取和写入权限。

  3. 设置上述配置值。请注意,remote_base_log_folder 应以 wasb 开头,以选择正确的处理程序,如上所示,并且容器应已存在。

  4. 重新启动 Airflow webserver 和 scheduler,并触发(或等待)新的任务执行。

  5. 验证是否在您定义的指定基本路径的容器中显示新执行任务的日志。

  6. 验证 Azure Blob 存储查看器是否在 UI 中正常工作。拉出一个新执行的任务,并验证您是否看到类似以下内容:

*** Found remote logs:
***   * https://my-container.blob.core.windows.net/wasb-base-folder/path/to/logs/dag_id=tutorial_dag/run_id=manual__2023-07-22T22:22:25.891267+00:00/task_id=load/attempt=1.log
[2023-07-23, 03:52:47] {taskinstance.py:1144} INFO - Dependencies all met for dep_context=non-requeueable deps ti=<TaskInstance: tutorial_dag.load manual__2023-07-22T22:22:25.891267+00:00 [queued]>
[2023-07-23, 03:52:47] {taskinstance.py:1144} INFO - Dependencies all met for dep_context=requeueable deps ti=<TaskInstance: tutorial_dag.load manual__2023-07-22T22:22:25.891267+00:00 [queued]>
[2023-07-23, 03:52:47] {taskinstance.py:1346} INFO - Starting attempt 1 of 3

注意,远程日志文件的路径列在第二行中。

此条目是否对您有帮助?