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

Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (1re génération héritée)

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.

À propos de l'enregistrement des journaux dans le bucket de l'environnement

L'enregistrement des journaux dans le bucket de l'environnement fonctionne de la manière suivante :

  • Désactivé (par défaut) : les journaux de tâches sont disponibles dans Cloud Logging. Vous pouvez les afficher dans l'interface utilisateur Airflow et dans Cloud Logging. Les fichiers journaux de tâches ne sont pas enregistrés dans le bucket de l'environnement.

    Si l'enregistrement des journaux dans le bucket de l'environnement était désactivé et que vous l'activez, les journaux de tâches affichés dans l'interface utilisateur Airflow n'affichent pas les entrées de journal générées lorsque les journaux étaient enregistrés uniquement dans Cloud Logging. Ces journaux ne sont pas perdus, ils sont toujours disponibles dans Cloud Logging.

  • Activé : les journaux de tâches sont enregistrés à la fois dans Cloud Logging et dans le bucket de l'environnement. Vous pouvez les afficher dans l'interface utilisateur Airflow et dans Cloud Logging. Le bucket de l'environnement stocke les fichiers contenant ces journaux.

    Si l'enregistrement des journaux dans le bucket de l'environnement était activé et que vous le désactivez, les journaux déjà enregistrés dans le bucket de l'environnement ne sont pas supprimés et restent stockés dans le bucket.

Avant de commencer

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

  • 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 enregistre les journaux dans le bucket de l'environnement vers une version ultérieure, l'environnement continue d'enregistrer les journaux dans le bucket de l'environnement.

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

Activer ou désactiver l'enregistrement des journaux de 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 comment les journaux de tâches Airflow doivent être enregistrés :

  • L'argument --disable-logs-in-cloud-logging-only permet d'enregistrer les 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 sont enregistrés uniquement 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, dans la ressource Environment > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig, spécifiez comment les journaux de 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
{
  "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 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

Lorsque vous créez un environnement, le champ storage_mode du bloc task_logs_retention_config spécifie comment les journaux de 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 de tâches dans le bucket de l'environnement pour 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 permet d'enregistrer les 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 sont enregistrés uniquement dans Cloud Logging.

Pour enregistrer les journaux Airflow dans le bucket de l'environnement :

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 comment les journaux de 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 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

Dans le bloc task_logs_retention_config, dans le champ storage_mode, spécifiez comment les journaux de 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"

      }
    }
  }
}

Étape suivante