Utiliser des variables d'environnement

Vous pouvez définir des variables d'environnement pour Workflows au moment du déploiement. Par exemple, vous pouvez créer un workflow configuré dynamiquement en fonction de l'environnement dans lequel il est déployé. Vous pouvez également créer un workflow qui peut être réutilisé comme modèle et configuré en fonction de variables d'environnement gérées séparément.

Les variables d'environnement sont définies sous forme de paires clé/valeur arbitraires auxquelles votre workflow peut accéder au moment de l'exécution. Ils sont stockés dans le backend Workflows, sont limités à l'exécution du workflow et sont immuables pendant l'exécution d'un workflow.

Toutes les variables d'environnement sont liées au déploiement d'un workflow et ne peuvent être définies ou modifiées qu'avec un déploiement. La création ou la modification d'une variable d'environnement nécessite un déploiement réussi. Si un déploiement échoue pour une raison quelconque, les modifications apportées aux variables d'environnement ne sont pas appliquées.

Vous pouvez ajouter, mettre à jour ou supprimer des variables d'environnement définies par l'utilisateur à l'aide de Google Cloud CLI.

Noms réservés

Les variables d'environnement intégrées définies pour Workflows sont réservées et ne peuvent pas être définies.

Notez que vous ne pouvez pas utiliser les éléments suivants lorsque vous définissez des variables d'environnement pour Workflows:

Clé Description
Vide ('') Les clés ne peuvent pas être des chaînes vides.
GOOGLE_ Les clés ne peuvent pas contenir le préfixe GOOGLE_.
WORKFLOWS_ Les clés ne peuvent pas contenir le préfixe WORKFLOWS_.

Définir des variables d'environnement

Vous pouvez définir de nouvelles variables ou remplacer des variables existantes lors du déploiement d'un workflow. Pour effectuer des modifications, consultez plutôt la section Mettre à jour des variables d'environnement dans ce document.

Console

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

    Accéder à "Workflows"

  2. Sur la page Workflows, cliquez sur Créer.

  3. Sur la page Créer un workflow, renseignez les champs appropriés pour configurer la définition de votre workflow.

  4. Dans la section Variables d'environnement (facultatives), cliquez sur Ajouter une variable.

  5. Dans le champ Nom 1, spécifiez le nom de la variable.

  6. Dans le champ Valeur 1, spécifiez la valeur de la variable.

  7. Pour ajouter une autre variable, cliquez sur Ajouter une variable.

  8. Cliquez sur Suivant.

  9. Après avoir défini votre workflow, cliquez sur Déployer pour le déployer.

gcloud

Pour définir une variable d'environnement, utilisez l'option --set-env-vars:

gcloud workflows deploy WORKFLOW_NAME \
    --set-env-vars KEY1=VALUE1

Remplacez les éléments suivants :

  • WORKFLOW_NAME: ID de votre workflow.
  • KEY1=VALUE1: nom de la variable d'environnement et sa valeur (par exemple, MONTH=January).

Terraform

Pour créer un workflow, utilisez la ressource google_workflows_workflow et modifiez le fichier main.tf comme indiqué dans l'exemple. Pour en savoir plus, consultez la page Créer un workflow à l'aide de Terraform.

Utilisez l'argument user_env_vars pour associer une variable d'environnement à la révision du workflow.

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Définir plusieurs variables d'environnement

Pour définir plusieurs variables d'environnement, séparez-les par une virgule:

gcloud workflows deploy WORKFLOW_NAME \
      --set-env-vars KEY1=VALUE1,KEY2=VALUE2

Échapper les caractères de virgule

Étant donné que la virgule (,) sert à délimiter les variables d'environnement, si les valeurs de vos variables incluent des virgules, vous devez spécifier un caractère délimiteur différent, par exemple @:

gcloud workflows deploy WORKFLOW_NAME \
      --set-env-vars ^@^KEY1=VALUE1,VALUE2,VALUE3@KEY2=VALUE2

Stocker des variables dans un fichier

Pour stocker vos variables dans un fichier (par exemple, sous contrôle de la source), utilisez un fichier YAML et l'option --env-vars-file:

gcloud workflows deploy WORKFLOW_NAME \
      --env-vars-file FILE_PATH

Remplacez FILE_PATH par le chemin d'accès à un fichier YAML local qui répertorie les définitions de vos variables d'environnement. Notez que les noms et les valeurs des variables doivent être des chaînes. Toutes les variables d'environnement existantes sont supprimées par Workflows avant l'ajout des nouvelles variables d'environnement.

Par exemple, le contenu du fichier YAML peut être le suivant:

KEY1: "value1"
KEY2: "value2"

Pour en savoir plus sur la commande deploy, consultez la page gcloud workflows deploy.

Accéder aux variables d'environnement

Pour accéder à une variable d'environnement, appelez la fonction sys.get_env() dans une expression, en transmettant le nom de la variable d'environnement d'environnement en tant que paramètre. Le nom de la variable d'environnement doit être transmis sous forme de chaîne.

Par exemple, le workflow suivant attribue la valeur de la variable d'environnement KEY1 à une variable de workflow appelée keyValue, puis génère cette valeur:

main:
  steps:
    - init:
        assign:
          - keyValue: ${sys.get_env("KEY1")}
    - returnResult:
        return: ${keyValue}

Mettre à jour les variables d'environnement

Vous pouvez mettre à jour les variables d'environnement définies par l'utilisateur pour les flux de travail existants. Il s'agit d'une approche non destructrice qui modifie ou ajoute des variables d'environnement, mais ne les supprime pas.

Console

  1. Dans la console Google Cloud, accédez à la page Workflows.

    Accéder à "Workflows"

  2. Cliquez sur le nom du workflow que vous souhaitez mettre à jour.

    La page Détails du workflow s'affiche.

  3. Pour modifier une variable d'environnement existante, effectuez l'une des opérations suivantes:

    • Cliquez sur l'onglet Détails.

      1. À côté de Variables d'environnement, cliquez sur l'icône .
      2. Apportez les modifications souhaitées.
      3. Pour déployer le workflow modifié, cliquez sur Enregistrer.
    • Cliquez sur Modifier.

      1. Dans la section Variables d'environnement (facultatives), apportez les modifications souhaitées.
      2. Pour déployer le workflow mis à jour, cliquez sur Suivant, puis sur Déployer.

gcloud

Pour mettre à jour une variable, utilisez l'option --update-env-vars:

gcloud workflows deploy WORKFLOW_NAME \
    --update-env-vars KEY1=VALUE1

Pour mettre à jour plusieurs variables d'environnement, séparez-les par une virgule:

gcloud workflows deploy WORKFLOW_NAME \
    --update-env-vars KEY1=VALUE1,KEY2=VALUE2

Supprimer les variables d'environnement

Vous pouvez supprimer des variables d'environnement définies par l'utilisateur pour les flux de travail existants.

Console

  1. Dans la console Google Cloud, accédez à la page Workflows.

    Accéder à "Workflows"

  2. Cliquez sur le nom du workflow que vous souhaitez mettre à jour.

    La page Détails du workflow s'affiche.

  3. Pour supprimer une variable d'environnement existante, effectuez l'une des opérations suivantes:

    • Cliquez sur l'onglet Détails.

      1. Cliquez sur le approprié.
      2. À côté de la variable d'environnement que vous souhaitez supprimer, cliquez sur l'icône .
      3. Pour déployer le workflow modifié, cliquez sur Enregistrer.
    • Cliquez sur Modifier.

      1. À côté de la variable d'environnement que vous souhaitez supprimer, cliquez sur l'icône .
      2. Pour déployer le workflow mis à jour, cliquez sur Suivant, puis sur Déployer.

gcloud

Si vous souhaitez supprimer des variables d'environnement de manière sélective, utilisez l'option --remove-env-vars:

gcloud workflows deploy WORKFLOW_NAME \
    --remove-env-vars KEY1,KEY2

Vous pouvez également effacer l'ensemble des variables d'environnement définies précédemment à l'aide de l'option --clear-env-vars :

gcloud workflows deploy WORKFLOW_NAME \
    --clear-env-vars

Bonnes pratiques

Il est déconseillé de modifier ou de dépendre de variables d'environnement que vous n'avez pas définies explicitement. Si vous modifiez des variables d'environnement autres que celles que vous avez définies explicitement, cela peut avoir des conséquences inattendues.

Gérer les secrets

Les variables d'environnement peuvent être utilisées pour configurer des workflows, mais elles ne sont pas recommandées pour stocker et consommer des secrets, tels que des identifiants de base de données ou des clés API. Ces valeurs sensibles doivent être stockées séparément de votre code source et de vos variables d'environnement, et ne doivent pas être envoyées par inadvertance aux journaux.

Pour stocker des secrets, nous vous recommandons de consulter les bonnes pratiques de gestion des secrets et de suivre les instructions pour utiliser Secret Manager avec Workflows.

Conventions de nommage

En règle générale, nous recommandons que les clés de variable d'environnement se composent uniquement de lettres majuscules, de chiffres et de traits de soulignement (_), et ne commencent pas par un chiffre. Envisagez de préfixer vos variables d'environnement définies par l'utilisateur avec une clé unique afin d'éviter les conflits avec d'autres variables.

Limites de taille

Vous pouvez définir jusqu'à 20 variables d'environnement définies par l'utilisateur. Chaque chaîne de définition (KEY=value) est limitée à 4 Kio.

Étapes suivantes