Abilita il salvataggio dei log nel bucket dell'ambiente

Cloud Composer 1 | Cloud Composer 2

Questa pagina spiega come abilitare il salvataggio dei log delle attività di Airflow nel bucket dell'ambiente per un ambiente nuovo o esistente.

Come opzione, puoi abilitare la sincronizzazione dei log delle attività con il bucket dell'ambiente.

Prima di iniziare

  • A partire dalla versione 2.8.0 di Cloud Composer, tutti gli ambienti non archiviano i log delle attività nel bucket dell'ambiente per impostazione predefinita. I log delle attività sono ancora disponibili nella UI di Cloud Logging e Airflow.

  • Se abiliti questa funzionalità, i log vengono salvati sia in Cloud Logging sia nel bucket dell'ambiente.

  • Quando esegui l'upgrade dell'ambiente, la configurazione per il salvataggio dei log nel bucket dell'ambiente non viene modificata. Ad esempio, se esegui l'upgrade di un ambiente che ha salvato i log nel bucket dell'ambiente a una versione successiva, l'ambiente continua a salvare i log nel bucket dell'ambiente.

  • Se disabiliti il salvataggio dei log delle attività nel bucket dell'ambiente, i log già salvati nel bucket dell'ambiente non vengono eliminati automaticamente.

  • Per abilitare o disabilitare questa opzione, puoi utilizzare Google Cloud CLI, l'API Cloud Composer o Terraform. Non è possibile modificare questa opzione tramite la console Google Cloud.

Abilita o disabilita il salvataggio dei log delle attività nel bucket dell'ambiente durante la creazione di un ambiente

gcloud

Quando crei un ambiente, i seguenti argomenti specificano come devono essere salvati i log delle attività di Airflow:

  • L'argomento --disable-logs-in-cloud-logging-only consente di salvare i log delle attività di Airflow nel bucket dell'ambiente.
  • L'argomento --enable-logs-in-cloud-logging-only disabilita il salvataggio dei log delle attività di Airflow nel bucket dell'ambiente. I log vengono salvati solo in Cloud Logging.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.

Esempio:

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

API

Quando crei un ambiente, nella risorsa Ambiente > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig, specifica come devono essere salvati i log delle attività di Airflow:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE per salvare i log nel bucket dell'ambiente e in Cloud Logging.
  • CLOUD_LOGGING_ONLY per salvare i log solo in Cloud Logging.
{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.
  • PROJECT_ID: l'ID progetto.

Esempio:

// 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

Quando crei un ambiente, il campo storage_mode nel blocco task_logs_retention_config specifica come devono essere salvati i log delle attività di Airflow:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE per salvare i log nel bucket dell'ambiente e in Cloud Logging.
  • CLOUD_LOGGING_ONLY per salvare i log solo in Cloud Logging.
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"

      }
    }
  }

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.

Esempio:

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"

      }
    }
  }
}

Abilita o disabilita il salvataggio dei log delle attività nel bucket dell'ambiente per un ambiente esistente

gcloud

Quando aggiorni un ambiente, i seguenti argomenti abilitano o disabilitano il salvataggio dei log delle attività di Airflow nel bucket dell'ambiente:

  • L'argomento --disable-logs-in-cloud-logging-only consente di salvare i log delle attività di Airflow nel bucket dell'ambiente. I log vengono salvati nel bucket dell'ambiente e in Cloud Logging.
  • L'argomento --enable-logs-in-cloud-logging-only disabilita il salvataggio dei log delle attività di Airflow nel bucket dell'ambiente. I log vengono salvati solo in Cloud Logging.

Per salvare i log di Airflow nel bucket dell'ambiente:

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

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.

Esempio:

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

API

  1. Creare una richiesta API environments.patch.

  2. In questa richiesta:

    1. Nel parametro updateMask, specifica la maschera config.dataRetentionConfig.taskLogsRetentionConfig.storageMode.

    2. Nel corpo della richiesta, specifica in che modo devono essere salvati i log delle attività di Airflow:

      • CLOUD_LOGGING_AND_CLOUD_STORAGE per salvare i log nel bucket dell'ambiente e in Cloud Logging.
      • CLOUD_LOGGING_ONLY per salvare i log solo in Cloud Logging.
{
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Esempio:

// 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

Nel blocco task_logs_retention_config, nel campo storage_mode specifica come devono essere salvati i log delle attività di Airflow:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE per salvare i log nel bucket dell'ambiente e in Cloud Logging.
  • CLOUD_LOGGING_ONLY per salvare i log solo in Cloud Logging.
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"

      }
    }
  }

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.

Esempio:

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"

      }
    }
  }
}

Passaggi successivi