Speichern von Logs im Bucket der Umgebung aktivieren

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

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

Hinweise

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

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

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

  • Wenn Sie das Speichern von Aufgabenprotokollen im Bucket der Umgebung deaktivieren, werden die Protokolle, 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 verwenden, Cloud Composer API oder Terraform. Diese Option kann nicht über die Google Cloud Console geändert werden.

Beim Erstellen einer Umgebung das Speichern von Aufgabenprotokollen im Bucket der Umgebung aktivieren oder deaktivieren

gcloud

Wenn Sie eine Umgebung erstellen, geben die folgenden Argumente an, wie Airflow müssen die Aufgabenlogs gespeichert werden:

  • Mit dem Argument --disable-logs-in-cloud-logging-only können Airflow-Aufgaben-Logs im Bucket der Umgebung gespeichert werden.
  • Mit dem Argument --enable-logs-in-cloud-logging-only wird das Speichern von Airflow-Aufgabenprotokollen im Bucket der Umgebung deaktiviert. Protokolle werden nur gespeichert in Cloud Logging:
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

Wenn Sie eine Umgebung erstellen, geben Sie im Feld Environment (Umgebung) > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig, Geben Sie an, wie Airflow-Aufgabenlogs gespeichert werden müssen:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE, um Protokolle 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

Beim Erstellen einer Umgebung gibt das Feld storage_mode im Block task_logs_retention_config an, wie Airflow-Aufgabenprotokolle gespeichert werden müssen:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE, um Protokolle 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"

      }
    }
  }
}

Das Speichern von Aufgabenlogs im Bucket der vorhandenen Umgebung aktivieren oder deaktivieren

gcloud

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

  • Mit dem Argument --disable-logs-in-cloud-logging-only können Airflow-Aufgaben-Logs im Bucket der Umgebung gespeichert werden. Logs werden im Bucket der Umgebung und in Cloud Logging gespeichert.
  • Argument --enable-logs-in-cloud-logging-only deaktiviert das Speichern der Airflow-Aufgabe Logs in den Bucket der Umgebung. Protokolle werden nur gespeichert in Cloud Logging:

So speichern Sie Airflow-Protokolle 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 config.dataRetentionConfig.taskLogsRetentionConfig.storageMode Maske.

    2. Geben Sie im Anfragetext an, wie Airflow-Aufgabenprotokolle 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.
{
  "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 zu speichern und Cloud Logging.
  • 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