Speichern von Protokollen im Bucket der Umgebung aktivieren

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Auf dieser Seite wird beschrieben, wie Sie das Speichern von Airflow-Aufgabenlogs im Bucket der Umgebung für eine neue oder vorhandene Umgebung aktivieren.

Optional können Sie die Synchronisierung von Aufgabenlogs mit dem Bucket der Umgebung aktivieren.

Logs im Bucket der Umgebung speichern

So werden Logs im Bucket der Umgebung gespeichert:

  • Deaktiviert (Standard): Aufgabenlogs sind in Cloud Logging verfügbar. Sie können sie in der Airflow-Benutzeroberfläche und in Cloud Logging ansehen. Task-Logdateien werden nicht im Bucket der Umgebung gespeichert.

    Wenn das Speichern von Logs im Bucket der Umgebung deaktiviert war und Sie es aktivieren, werden in den Aufgabenlogs, die in der Airflow-Benutzeroberfläche angezeigt werden, keine Logeinträge angezeigt, die generiert wurden, als Logs nur in Cloud Logging gespeichert wurden. Diese Logs gehen nicht verloren, sondern sind weiterhin in Cloud Logging verfügbar.

  • Aktiviert: Aufgabenlogs werden sowohl in Cloud Logging als auch im Bucket der Umgebung gespeichert. Sie können sie in der Airflow-UI und in Cloud Logging aufrufen. Im Bucket der Umgebung werden Dateien mit diesen Logs gespeichert.

    Wenn das Speichern von Logs im Bucket der Umgebung aktiviert war und Sie es deaktivieren, werden die Logs, die bereits im Bucket der Umgebung gespeichert wurden, nicht gelöscht und bleiben im Bucket gespeichert.

Hinweise

  • Ab Cloud Composer-Version 2.8.0 werden Aufgabenlogs in allen Umgebungen standardmäßig nicht im Bucket der Umgebung gespeichert. Aufgabenlogs sind weiterhin in Cloud Logging und der Airflow-UI verfügbar.

  • Wenn Sie Ihre Umgebung aktualisieren, wird die Konfiguration zum Speichern von Logs im Bucket der Umgebung nicht geändert. Wenn Sie beispielsweise eine Umgebung, in der Logs im Bucket der Umgebung gespeichert wurden, auf eine neuere Version upgraden, werden die Logs weiterhin im Bucket der Umgebung gespeichert.

  • Sie können diese Option mit der Google Cloud CLI, der Cloud Composer API oder Terraform aktivieren oder deaktivieren. Diese Option kann nicht über die Google Cloud -Konsole geändert werden.

Speichern von Aufgabenlogs im Bucket der Umgebung beim Erstellen einer Umgebung aktivieren oder deaktivieren

gcloud

Beim Erstellen einer Umgebung geben die folgenden Argumente an, wie Airflow-Aufgabenlogs gespeichert werden müssen:

  • Mit dem --disable-logs-in-cloud-logging-only-Argument können Airflow-Aufgabenlogs im Bucket der Umgebung gespeichert werden.
  • Das --enable-logs-in-cloud-logging-only-Argument deaktiviert das Speichern von Airflow-Aufgabenlogs im Bucket der Umgebung. Logs werden nur in Cloud Logging gespeichert.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --disable-logs-in-cloud-logging-only

API

Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig an, wie Airflow-Aufgabenlogs gespeichert werden müssen:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE, um Logs im Bucket der Umgebung und in Cloud Logging zu speichern.
  • CLOUD_LOGGING_ONLY, um Logs nur in Cloud Logging zu speichern.
{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.
  • PROJECT_ID: die Projekt-ID.

Beispiel:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Terraform

Wenn Sie eine Umgebung erstellen, gibt das Feld storage_mode im Block task_logs_retention_config an, wie Airflow-Aufgabenlogs gespeichert werden müssen:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE, um Logs im Bucket der Umgebung und in Cloud Logging zu speichern.
  • CLOUD_LOGGING_ONLY, um Logs nur in Cloud Logging zu speichern.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    data_retention_config {

      task_logs_retention_config {

        storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"

      }
    }
  }

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    data_retention_config {

      task_logs_retention_config {

        storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"

      }
    }
  }
}

Speichern von Aufgabenlogs im Bucket der Umgebung für eine vorhandene Umgebung aktivieren oder deaktivieren

gcloud

Wenn Sie eine Umgebung aktualisieren, können Sie mit den folgenden Argumenten das Speichern von Airflow-Aufgabenlogs im Bucket der Umgebung aktivieren oder deaktivieren:

  • Mit dem --disable-logs-in-cloud-logging-only-Argument können Airflow-Aufgabenlogs im Bucket der Umgebung gespeichert werden. Logs werden im Bucket der Umgebung und in Cloud Logging gespeichert.
  • Das --enable-logs-in-cloud-logging-only-Argument deaktiviert das Speichern von Airflow-Aufgabenlogs im Bucket der Umgebung. Logs werden nur in Cloud Logging gespeichert.

So speichern Sie Airflow-Logs im Bucket der Umgebung:

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.

Beispiel:

gcloud composer environments update example-environment \
    --location us-central1 \
    --disable-logs-in-cloud-logging-only

API

  1. Erstellen Sie eine API-Anfrage environments.patch.

  2. In dieser Anfrage:

    1. Geben Sie im Parameter updateMask die Maske config.dataRetentionConfig.taskLogsRetentionConfig.storageMode an.

    2. Geben Sie im Anfragetext an, wie Airflow-Aufgabenlogs gespeichert werden sollen:

      • CLOUD_LOGGING_AND_CLOUD_STORAGE, um Logs im Bucket der Umgebung und in Cloud Logging zu speichern.
      • CLOUD_LOGGING_ONLY, um Logs nur in Cloud Logging zu speichern.
{
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Beispiel:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.dataRetentionConfig.taskLogsRetentionConfig.storageMode

{
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Terraform

Geben Sie im Block task_logs_retention_config im Feld storage_mode an, wie Airflow-Aufgabenlogs gespeichert werden müssen:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE, um Logs im Bucket der Umgebung und in Cloud Logging zu speichern.
  • CLOUD_LOGGING_ONLY, um Logs nur in Cloud Logging zu speichern.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    data_retention_config {

      task_logs_retention_config {

        storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"

      }
    }
  }

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    data_retention_config {

      task_logs_retention_config {

        storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"

      }
    }
  }
}

Nächste Schritte