Activer l'enregistrement des journaux dans le bucket de l'environnement

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment activer l'enregistrement des journaux de tâches Airflow dans le bucket de l'environnement pour un environnement nouveau ou existant.

Vous pouvez également activer la synchronisation des journaux de tâches avec le bucket de l'environnement.

Avant de commencer

  • À partir de la version 2.8.0 de Cloud Composer, les journaux des tâches ne sont pas stockés par défaut dans le bucket de l'environnement. Les journaux des tâches sont toujours disponibles dans Cloud Logging et dans l'interface utilisateur d'Airflow.

  • Si vous activez cette fonctionnalité, les journaux sont enregistrés à la fois dans Cloud Logging et dans le bucket de l'environnement.

  • Lorsque vous mettez à niveau votre environnement, la configuration d'enregistrement des journaux dans le bucket de l'environnement n'est pas modifiée. Par exemple, si vous mettez à niveau un environnement qui a enregistré des journaux dans le bucket de l'environnement vers une version ultérieure, l'environnement continue à enregistrer des journaux dans son bucket.

  • Si vous désactivez l'enregistrement des journaux de tâches dans le bucket de l'environnement, les journaux déjà enregistrés dans le bucket de l'environnement ne sont pas supprimés automatiquement.

  • Pour activer ou désactiver cette option, vous pouvez utiliser la Google Cloud CLI, l'API Cloud Composer ou Terraform. Il n'est pas possible de modifier cette option dans la console Google Cloud.

Activer ou désactiver l'enregistrement des journaux des tâches dans le bucket de l'environnement lors de la création d'un environnement

gcloud

Lorsque vous créez un environnement, les arguments suivants spécifient la manière dont les journaux de tâches Airflow doivent être enregistrés:

  • L'argument --disable-logs-in-cloud-logging-only active l'enregistrement des journaux de tâches Airflow dans le bucket de l'environnement.
  • L'argument --enable-logs-in-cloud-logging-only désactive l'enregistrement des journaux de tâches Airflow dans le bucket de l'environnement. Les journaux ne sont enregistrés que dans Cloud Logging.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION: région dans laquelle se trouve l'environnement.

Exemple :

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

API

Lorsque vous créez un environnement, spécifiez la manière dont les journaux des tâches Airflow doivent être enregistrés dans la ressource Environment > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE pour enregistrer les journaux dans le bucket de l'environnement et dans Cloud Logging.
  • CLOUD_LOGGING_ONLY pour enregistrer les journaux uniquement dans Cloud Logging.
{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION: région dans laquelle se trouve l'environnement.
  • PROJECT_ID: ID du projet

Exemple :

// POST http://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

Lorsque vous créez un environnement, le champ storage_mode du bloc task_logs_retention_config spécifie la manière dont les journaux des tâches Airflow doivent être enregistrés:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE pour enregistrer les journaux dans le bucket de l'environnement et dans Cloud Logging.
  • CLOUD_LOGGING_ONLY pour enregistrer les journaux uniquement dans 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"

      }
    }
  }

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION: région dans laquelle se trouve l'environnement.

Exemple :

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"

      }
    }
  }
}

Activer ou désactiver l'enregistrement des journaux des tâches dans le bucket d'un environnement existant

gcloud

Lorsque vous mettez à jour un environnement, les arguments suivants activent ou désactivent l'enregistrement des journaux de tâches Airflow dans le bucket de l'environnement:

  • L'argument --disable-logs-in-cloud-logging-only active l'enregistrement des journaux de tâches Airflow dans le bucket de l'environnement. Les journaux sont enregistrés dans le bucket de l'environnement et dans Cloud Logging.
  • L'argument --enable-logs-in-cloud-logging-only désactive l'enregistrement des journaux de tâches Airflow dans le bucket de l'environnement. Les journaux ne sont enregistrés que dans Cloud Logging.

Pour enregistrer les journaux Airflow dans le bucket de l'environnement, procédez comme suit:

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

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION: région dans laquelle se trouve l'environnement.

Exemple :

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

API

  1. Rédigez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.dataRetentionConfig.taskLogsRetentionConfig.storageMode.

    2. Dans le corps de la requête, spécifiez la manière dont les journaux des tâches Airflow doivent être enregistrés:

      • CLOUD_LOGGING_AND_CLOUD_STORAGE pour enregistrer les journaux dans le bucket de l'environnement et dans Cloud Logging.
      • CLOUD_LOGGING_ONLY pour enregistrer les journaux uniquement dans Cloud Logging.
{
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Exemple :

// PATCH http://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

Dans le champ storage_mode du bloc task_logs_retention_config, spécifiez la manière dont les journaux des tâches Airflow doivent être enregistrés:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE pour enregistrer les journaux dans le bucket de l'environnement et dans Cloud Logging.
  • CLOUD_LOGGING_ONLY pour enregistrer les journaux uniquement dans 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"

      }
    }
  }

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION: région dans laquelle se trouve l'environnement.

Exemple :

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"

      }
    }
  }
}

Étapes suivantes