Speichern von Logs im Bucket der Umgebung aktivieren

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird erläutert, 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.

Hinweise

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

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

  • Wenn Sie ein Upgrade Ihrer Umgebung ausführen, ändert sich die Konfiguration zum Speichern von Logs im Bucket der Umgebung nicht. Wenn Sie beispielsweise eine Umgebung, in der Logs im Bucket der Umgebung gespeichert wurden, auf eine neuere Version upgraden, speichert die Umgebung Logs weiterhin im Bucket der Umgebung.

  • 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. Diese Option kann nicht über die Google Cloud Console geändert werden.

Aktivieren oder deaktivieren Sie das Speichern von Aufgabenlogs im Bucket der Umgebung beim Erstellen einer Umgebung

gcloud

Wenn Sie eine Umgebung erstellen, 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-Aufgabenlogs im Bucket der Umgebung.
  • Das Argument --enable-logs-in-cloud-logging-only 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: 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: 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, wird im Feld storage_mode im Block task_logs_retention_config angegeben, 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: 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"

      }
    }
  }
}

Aktivieren oder deaktivieren Sie das Speichern von Aufgabenlogs im Bucket der Umgebung für eine vorhandene Umgebung

gcloud

Wenn Sie eine Umgebung aktualisieren, aktivieren oder deaktivieren die folgenden Argumente das Speichern von Airflow-Aufgabenlogs im Bucket der Umgebung:

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