Définir des variables d'environnement

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment définir des variables d'environnement dans votre environnement Cloud Composer.

Cloud Composer utilise les variables d'environnement pour modifier le comportement d'Airflow ou des DAG.

Les variables d'environnement sont persistantes. Une fois que vous avez spécifié une variable d'environnement, Airflow continue de l'utiliser jusqu'à ce que vous la supprimiez de votre environnement.

Par exemple, Cloud Composer utilise le module Sendgrid d'Apache Airflow pour les notifications par e-mail. Pour configurer les notifications par e-mail, vous devez définir les variables d'environnement SENDGRID_API_KEY et SENDGRID_MAIL_FROM.

Format du nom

Les variables d'environnement doivent correspondre à l'expression régulière [a-zA-Z_][a-zA-Z0-9_]*.

Les variables d'environnement ne doivent pas spécifier les remplacements de configuration Apache Airflow. Cela signifie que les variables ne peuvent pas utiliser le format AIRFLOW__{SECTION}__{KEY} ni correspondre à l'expression régulière AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+.

Variables réservées

Les noms suivants sont réservés et ne peuvent pas être utilisés :

  • AIRFLOW_HOME
  • AIRFLOW_SRC_DIR
  • C_FORCE_ROOT
  • CLOUDSDK_METRICS_ENVIRONMENT
  • COMPOSER_ENVIRONMENT
  • COMPOSER_GKE_NAME
  • COMPOSER_GKE_ZONE
  • COMPOSER_LOCATION
  • COMPOSER_PYTHON_VERSION
  • CONTAINER_NAME
  • DAGS_FOLDER
  • GCP_PROJECT
  • GCS_BUCKET
  • GKE_CLUSTER_NAME
  • GOOGLE_APPLICATION_CREDENTIALS
  • KUBERNETES_PORT
  • KUBERNETES_PORT_443_TCP_PROTO
  • KUBERNETES_PORT_443_TCP_ADDR
  • KUBERNETES_PORT_443_TCP_PORT
  • KUBERNETES_PORT_443_TCP
  • KUBERNETES_SERVICE_HOST
  • KUBERNETES_SERVICE_PORT
  • KUBERNETES_SERVICE_PORT_HTTPS
  • MAJOR_VERSION
  • MINOR_VERSION
  • PROJECT_ID
  • SQL_DATABASE
  • SQL_INSTANCE
  • SQL_HOST
  • SQL_PASSWORD
  • SQL_PROJECT
  • SQL_REGION
  • SQL_USER

Définir des variables d'environnement pour les nouveaux environnements

Vous pouvez spécifier des variables d'environnement lorsque vous créez un environnement. Pour en savoir plus, consultez la page Créer des environnements.

Définir des variables d'environnement pour les environnements existants

Console

Pour définir des variables d'environnement pour un environnement existant:

  1. Dans Google Cloud Console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Environment details (Détails sur l'environnement) s'ouvre.

  3. Accédez à l'onglet Variables d'environnement, puis cliquez sur Modifier.

  4. Ajoutez, modifiez ou supprimez des variables d'environnement pour votre environnement:

    • Dans le champ Nom, indiquez le nom de la variable.
    • Dans le champ Valeur, spécifiez la valeur de la variable.
    • Pour ajouter une variable, cliquez sur Ajouter une variable d'environnement.
    • Pour supprimer une variable, placez le pointeur dessus, puis cliquez sur Supprimer l'élément.

gcloud

Les arguments suivants contrôlent les variables d'environnement:

  • --update-env-variables spécifie une liste de variables d'environnement séparées par une virgule à créer ou mettre à jour.

  • --remove-env-variables spécifie une liste de variables d'environnement à supprimer, séparées par une virgule.

  • --clear-env-variables supprime toutes les variables d'environnement existantes.

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --update-env-variables=NAME=VALUE

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • NAME par le nom de la variable que vous souhaitez créer ou mettre à jour.
  • VALUE par la valeur de la variable.
  • Pour ajouter plusieurs variables, séparez-les par une virgule : NAME=VALUE,NAME=VALUE,....

Exemple :

gcloud composer environments update \
  example-environment \
  --location us-central1 \
  --update-env-variables=EXAMPLE_VARIABLE=True,ANOTHER_VARIABLE=test

API

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

Dans cette requête :

  1. Dans le paramètre updateMask, spécifiez le masque config.softwareConfig.envVariables pour remplacer toutes les variables existantes par les variables spécifiées. Les variables que vous ne spécifiez pas sont supprimées.

  2. Dans le corps de la requête, spécifiez les variables et leurs valeurs:

    {
      "config": {
        "softwareConfig": {
          "envVariables": {
            "VAR_NAME": "VAR_VALUE"
          }
        }
      }
    }
    

    Remplacez :

    • VAR_NAME par le nom de la variable d'environnement.
    • VAR_VALUE par la valeur de la variable d'environnement ;
    • Pour ajouter plusieurs variables, ajoutez des entrées supplémentaires pour les variables dans envVariables.

Exemple :

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.envVariables
{
  "config": {
    "softwareConfig": {
      "envVariables": {
        "EXAMPLE_VARIABLE": "True",
        "ANOTHER_VARIABLE": "test"
      }
    }
  }
}

Terraform

Le bloc env_variables du bloc software_config spécifie les variables d'environnement.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }

    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • VAR_NAME par le nom de la variable d'environnement.
  • VAR_VALUE par la valeur de la variable d'environnement ;
  • Pour ajouter plusieurs variables, ajoutez des entrées supplémentaires pour les variables dans env_variables.

Exemple :

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {

      env_variables = {
        EXAMPLE_VARIABLE = "True"
        ANOTHER_VARIABLE = "test"
      }

  }
}

Étapes suivantes