Attivare il salvataggio dei log nel bucket dell'ambiente

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

In alternativa, puoi attivare la sincronizzazione dei log delle attività con il bucket dell'ambiente.

Prima di iniziare

  • A partire da Cloud Composer versione 2.8.0, non tutti gli ambienti e archiviare i log delle attività nel bucket dell'ambiente per impostazione predefinita. I log delle attività sono ancora disponibili in Cloud Logging e nell'interfaccia utente di Airflow.

  • Se attivi 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 il bucket dell'ambiente non sia stato modificato. Ad esempio, se esegui l'upgrade di un che ha salvato i log nel bucket dell'ambiente in una versione successiva, dell'ambiente continua a salvare i log nel bucket dell'ambiente.

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

  • Per attivare o disattivare 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 l'attività Airflow i log al bucket dell'ambiente.
  • L'argomento --enable-logs-in-cloud-logging-only disattiva il salvataggio dei log delle attività 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 del tuo 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 Environment > 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 del tuo 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à 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 del tuo 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 attivano o disattivano la salvataggio dei log delle attività di Airflow nel bucket dell'ambiente:

  • L'argomento --disable-logs-in-cloud-logging-only consente di salvare l'attività Airflow i log al 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 dell'attività Airflow i log al bucket dell'ambiente. I log vengono salvati solo in e 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 del tuo 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. Crea 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 come devono essere i log delle attività Airflow risparmiati:

      • CLOUD_LOGGING_AND_CLOUD_STORAGE per salvare i log nell'ambiente e 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à Airflow:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE per salvare i log nel bucket dell'ambiente e 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 del tuo 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