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 für eine neue oder vorhandene Umgebung.

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

Hinweise

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

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

  • Wenn Sie ein Upgrade Ihrer Umgebung durchführen, wird die Konfiguration zum Speichern von Logs im nicht geändert. Wenn Sie beispielsweise ein Umgebung, die Logs im Bucket der Umgebung in einer späteren Version gespeichert hat, speichert die Umgebung weiterhin Logs im Bucket der Umgebung.

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

  • Zum Aktivieren oder Deaktivieren dieser Option können Sie die Google Cloud CLI verwenden, Cloud Composer API oder Terraform. Diese Option kann nicht geändert werden über die Google Cloud Console.

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:

  • Argument --disable-logs-in-cloud-logging-only aktiviert das Speichern der Airflow-Aufgabe Logs in den Bucket der Umgebung.
  • 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:
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 Logs im Bucket der Umgebung zu speichern und Cloud Logging.
  • 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 das Feld storage_mode in der Der task_logs_retention_config-Block gibt an, wie Airflow-Task-Logs sein müssen gespeichert:

  • 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"

      }
    }
  }
}

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

gcloud

Wenn Sie eine Umgebung aktualisieren, werden die folgenden Argumente aktiviert oder deaktiviert Speichern von Airflow-Aufgabenlogs im Bucket der Umgebung:

  • Argument --disable-logs-in-cloud-logging-only aktiviert das Speichern der Airflow-Aufgabe Logs in den Bucket der Umgebung. 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-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 config.dataRetentionConfig.taskLogsRetentionConfig.storageMode Maske.

    2. Geben Sie im Anfragetext an, wie Airflow-Aufgabenlogs konfiguriert werden müssen gespeichert:

      • CLOUD_LOGGING_AND_CLOUD_STORAGE zum Speichern von Logs im Bucket und Cloud Logging.
      • 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