Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cette page explique comment définir des variables d'environnement dans votre Cloud Composer.
Cloud Composer utilise les variables d'environnement pour modifier le comportement d'exécution d'Airflow ou de vos 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 supprimiez la variable de votre environnement.
Par exemple, Cloud Composer
utilise le module Sendgrid Apache Airflow pour
des 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_]*
Options de configuration Airflow
Il n'est pas possible de spécifier des variables qui modifient les options de configuration Apache Airflow.
Les variables ne peuvent pas utiliser le format AIRFLOW__{SECTION}__{KEY}
ni correspondre au
Expression régulière AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+
. Par exemple, il ne s'agit pas
qu'il est possible de définir AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW
.
Vous pouvez plutôt remplacer les options de configuration Airflow.
Variables réservées
Les noms de variables suivants sont réservés par Cloud Composer. Il est impossible de créer des variables avec ces noms.
AIRFLOW_DATABASE_VERSION
AIRFLOW_HOME
AIRFLOW_SRC_DIR
AIRFLOW_WEBSERVER
AUTO_GKE
CLOUDSDK_METRICS_ENVIRONMENT
CLOUD_LOGGING_ONLY
COMPOSER_ENVIRONMENT
COMPOSER_GKE_LOCATION
COMPOSER_GKE_NAME
COMPOSER_GKE_ZONE
COMPOSER_LOCATION
COMPOSER_OPERATION_UUID
COMPOSER_PYTHON_VERSION
COMPOSER_VERSION
CONTAINER_NAME
C_FORCE_ROOT
DAGS_FOLDER
GCP_PROJECT
GCP_TENANT_PROJECT
GCSFUSE_EXTRACTED
GCS_BUCKET
GKE_CLUSTER_NAME
GKE_IN_TENANT
GOOGLE_APPLICATION_CREDENTIALS
MAJOR_VERSION
MINOR_VERSION
PATH
PIP_DISABLE_PIP_VERSION_CHECK
PORT
PROJECT_ID
PYTHONPYCACHEPREFIX
PYTHONWARNINGS
SQL_DATABASE
SQL_HOST
SQL_INSTANCE
SQL_PASSWORD
SQL_PROJECT
SQL_REGION
SQL_USER
Définir des variables d'environnement pour de nouveaux environnements
Vous pouvez spécifier des variables d'environnement lorsque vous créez un environnement. Pour plus pour en savoir plus, consultez 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 :
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Variables d'environnement, puis cliquez sur Modifier.
Ajoutez, modifiez ou supprimez des variables d'environnement pour votre environnement :
- Dans le champ Nom, spécifiez le nom de la variable.
- Dans le champ Valeur, spécifiez la valeur de la variable.
- Pour ajouter une variable supplémentaire, cliquez sur Ajouter une variable d'environnement.
- Pour supprimer une variable, pointez 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 d'environnements séparés par une virgule. de variables à 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
avec la valeur de la variable.- Pour ajouter plusieurs variables, séparez les définitions par des virgules :
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 :
Dans le paramètre
updateMask
, spécifiez la Masqueconfig.softwareConfig.envVariables
pour remplacer tous les avec les variables spécifiées. Variables que vous ne spécifiez pas sont supprimés.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
à
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
variables d'environnement.
resource "google_composer_environment" "example" {
provider = google-beta
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 où 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
à
env_variables
.
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}
}