Speichern von Logs im Umgebungs-Bucket aktivieren

Cloud Composer 1 Cloud Composer 2

Auf dieser Seite wird erläutert, wie Sie das Speichern von Airflow-Tasklogs 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.

Hinweise

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

  • Wenn Sie dieses Feature aktivieren, werden Logs sowohl in Cloud Logging als auch im Bucket der Umgebung gespeichert.

  • Beim Upgrade der Umgebung wird die Konfiguration zum Speichern von Logs im Bucket der Umgebung nicht geändert. Wenn Sie beispielsweise ein Upgrade für eine Umgebung durchführen, in der Logs im Bucket der Umgebung auf eine neuere Version gespeichert wurden, werden die Logs weiterhin im Bucket der Umgebung gespeichert.

  • Wenn Sie das Speichern von Aufgabenlogs im Bucket der Umgebung deaktivieren, werden die Logs, die bereits im Bucket der Umgebung gespeichert wurden, nicht automatisch gelöscht.

  • Zum Aktivieren oder Deaktivieren dieser Option können Sie die Google Cloud CLI, die Cloud Composer API oder Terraform verwenden. Es ist nicht möglich, diese Option über die Google Cloud Console zu ändern.

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:

  • Das Argument --disable-logs-in-cloud-logging-only ermöglicht das Speichern von Airflow-Tasklogs im Bucket der Umgebung.
  • Mit dem Argument --enable-logs-in-cloud-logging-only wird das Speichern von Airflow-Tasklogs im Bucket der Umgebung deaktiviert. 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 Environment > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig 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.
{
  "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

Beim Erstellen einer Umgebung gibt das Feld storage_mode im Block task_logs_retention_config an, wie die Airflow-Tasklogs 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, wird mit den folgenden Argumenten das Speichern von Airflow-Tasklogs im Bucket der Umgebung aktiviert oder deaktiviert:

  • Das Argument --disable-logs-in-cloud-logging-only ermöglicht das Speichern von Airflow-Tasklogs im Bucket der Umgebung. Logs werden im Bucket der Umgebung und in Cloud Logging gespeichert.
  • Mit dem Argument --enable-logs-in-cloud-logging-only wird das Speichern von Airflow-Tasklogs im Bucket der Umgebung deaktiviert. 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-Tasklogs 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-Tasklogs 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.
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