Utiliser des variables d'environnement

Lorsque vous définissez des variables d'environnement, elles sont injectées dans le conteneur et sont accessibles depuis votre code. Les variables d'environnement sont définies sous forme de paires clé/valeur.

Noms réservés

Les variables d'environnement définies dans le contrat d'exécution du conteneur sont réservées et ne peuvent pas être définies. En particulier, la variable d'environnement PORT est injectée dans votre conteneur par Cloud Run. Vous ne devriez pas la définir vous-même.

Définir des variables d'environnement

Vous pouvez définir des variables d'environnement pour les services ou les tâches Cloud Run.

Pour les services Cloud Run

Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

Vous pouvez définir des variables d'environnement à l'aide de Google Cloud Console, de la ligne de commande gcloud ou d'un fichier YAML lorsque vous créez un service ou que vous déployez une nouvelle révision :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service selon vos besoins, puis cliquez sur Conteneur, mise en réseau, sécurité pour développer la page de configuration du service.

  4. Cliquez sur l'onglet Conteneur.

    Image

    • Procédez comme suit :
      • Si vous ajoutez une variable, cliquez sur Add Variable (Ajouter une variable) et spécifiez le nom souhaité et la valeur de cette variable dans les zones de texte Name (Nom) et Value (Valeur).
      • Si vous modifiez la valeur d'une variable, remplacez la valeur actuelle dans la zone de texte Value (Valeur) par la valeur souhaitée.
      • Si vous supprimez une ou plusieurs variables d'environnement, placez votre curseur à gauche de la zone de texte Value (Valeur) de la variable à supprimer pour afficher l'icône de la corbeille, puis cliquez dessus.
  5. Cliquez sur Créer ou Déployer.

Ligne de commande

Pour définir, modifier ou supprimer des variables d'environnement sur un service existant, utilisez la commande gcloud run services update. Vous pouvez utiliser l'une des options suivantes, selon vos besoins :

Vous pouvez spécifier des variables d'environnement lors du déploiement d'un service ou les mettre à jour après la création du service :

gcloud run deploy [SERVICE] --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2

gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
  • Remplacez SERVICE par le nom du service.
  • Remplacez KEY1=VALUE1,KEY2=VALUE2 par la liste des noms de variables souhaités et de leurs valeurs, séparés par une virgule.
  • Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Lorsque vous utilisez Artifact Registry, l'URL se présente sous la forme suivante: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. .

YAML

Vous pouvez télécharger et afficher les configurations de service existantes à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Modifiez les attributs name et value sous l'attribut env sous containers: :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
            env:
            - name: KEY-1
              value: VALUE-1
            - name: KEY-N
              value: VALUE-N

    Remplacez

    • SERVICE par le nom de votre service Cloud Run
    • IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Lorsque vous utilisez Artifact Registry, l'URL se présente sous la forme suivante: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • KEY-1, VALUE-1 par la variable d'environnement et la valeur. Si vous le souhaitez, vous pouvez ajouter d'autres variables accompagnées de leur valeur.
    • REVISION par un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :
      • Commencer par SERVICE-
      • Ne contenir que des lettres minuscules, des chiffres et -
      • Ne pas se terminer par -
      • Ne pas dépasser 63 caractères
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml

Terraform

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

Ajoutez les éléments suivants à une ressource google_cloud_run_service dans votre configuration Terraform, sous template.spec.containers. L'exemple suivant définit la variable d'environnement foo sur bar et la variable d'environnement baz sur quux :

# Environment variables
# https://cloud.google.com/run/docs/configuring/environment-variables
env {
  name  = "foo"
  value = "bar"
}
env {
  name  = "baz"
  value = "quux"
}

Pour les jobs Cloud Run

Pour définir une variable d'environnement pour une tâche Cloud Run, procédez comme suit :

Console

  1. Accédez à Cloud Run

  2. Si vous configurez une nouvelle tâche, cliquez sur l'onglet Tâches et remplissez la page des paramètres initiaux de la tâche selon vos besoins. Si vous configurez une tâche existante, cliquez sur celle-ci, puis sur Modifier.

  3. Cliquez sur Conteneur, variables et secrets, connexions, sécurité pour développer la page des propriétés de la tâche.

  4. Cliquez sur l'onglet Variables.

    Image

    • Procédez comme suit :
      • Si vous ajoutez une variable, cliquez sur Add Variable (Ajouter une variable) et spécifiez le nom souhaité et la valeur de cette variable dans les zones de texte Name (Nom) et Value (Valeur).
      • Si vous modifiez la valeur d'une variable, remplacez la valeur actuelle dans la zone de texte Value (Valeur) par la valeur souhaitée.
      • Si vous supprimez une ou plusieurs variables d'environnement, placez votre curseur à gauche de la zone de texte Value (Valeur) de la variable à supprimer pour afficher l'icône de la corbeille, puis cliquez dessus.
  5. Cliquez sur Créer ou Mettre à jour.

Ligne de commande

Définissez, mettez à jour ou supprimez les variables d'environnement d'un service existant à l'aide de la commande gcloud run jobs update. Vous pouvez utiliser l'une des options suivantes, selon vos besoins :

  • --set-env-vars
  • --update-env-vars
  • --remove-env-vars
  • --clear-env-vars

    Vous pouvez spécifier des variables d'environnement tout en créant une tâche ou en mettant à jour une tâche :

    gcloud run jobs create JOB_NAME --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2
    
    gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2
  • Remplacez JOB_NAME par le nom de votre tâche.

  • Remplacez KEY1=VALUE1,KEY2=VALUE2 par la liste des noms de variables souhaités et de leurs valeurs, séparés par une virgule.

  • Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/job:latest.

YAML

Téléchargez et affichez la configuration de tâche existante à l'aide de la commande gcloud run jobs describe --format export, qui renvoie les résultats nettoyés au format YAML. Modifiez ensuite les champs décrits ci-dessous et importez le fichier YAML modifié à l'aide de la commande gcloud run jobs replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run jobs describe JOB_NAME --format export > job.yaml
    1. Mettez à jour les attributs name et value sous env, comme indiqué sous containers: :
    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE
                env:
                - name: KEY-1
                  value: VALUE-1
                - name: KEY-N
                  value: VALUE-N

    Remplacez KEY-1, VALUE-1 par la variable d'environnement et la valeur. Si vous le souhaitez, vous pouvez ajouter d'autres variables accompagnées de leur valeur.

    Vous pouvez également spécifier d'autres éléments de configuration, tels que des variables d'environnement ou des limites de mémoire.

  2. Mettez à jour la configuration de tâche existante :

    gcloud run jobs replace job.yaml

Définir de nombreuses variables d'environnement

Si vous avez trop de variables d'environnement qui ne peuvent pas être facilement répertoriées au format KEY1=VALUE1,KEY2=VALUE2, vous pouvez également répéter les options ci-dessus plusieurs fois :

   [...]
   --set-env-vars "KEY1=VALUE1" \
   --set-env-vars "KEY2=VALUE2" \
   --set-env-vars "KEY3=VALUE3"

Échapper les caractères de virgule

Comme la virgule , est utilisée pour séparer les variables d'environnement, si votre variable d'environnement contient des virgules en tant que valeurs, vous devez échapper ces délimiteurs en spécifiant un caractère de délimitation différent, par exemple @ :

--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."

Définir des variables d'environnement par défaut dans le conteneur

Vous pouvez utiliser l'instruction ENV dans un fichier Dockerfile pour définir les valeurs par défaut des variables d'environnement :

ENV KEY1=VALUE1,KEY2=VALUE2

Ordre de priorité entre les variables de conteneur et de service ou de tâche

Si vous définissez une variable d'environnement par défaut dans le conteneur et définissez une variable d'environnement portant le même nom sur le service ou la tâche Cloud Run, la valeur définie au niveau du service est prioritaire.

Afficher les paramètres des variables d'environnement

Pour afficher les paramètres des variables d'environnement actuels de votre service Cloud Run, procédez comme suit :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.

  3. Cliquez sur l'onglet Révisions.

  4. Dans le panneau de détails sur la droite, le paramètre des variables d'environnement est répertorié sous l'onglet Conteneur.

Ligne de commande

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. Recherchez le paramètre de variables d'environnement dans la configuration renvoyée.

Pour afficher les paramètres actuels des variables d'environnement pour votre tâche Cloud Run, procédez comme suit :

Console

  1. Accéder aux tâches Cloud Run

  2. Cliquez sur la tâche qui vous intéresse pour ouvrir la page Informations sur la tâche.

  3. Cliquez sur l'onglet Configuration.

  4. Recherchez les variables d'environnement définies dans les détails de la configuration.

Ligne de commande

  1. Exécutez la commande suivante :

    gcloud run jobs describe JOB_NAME
  2. Recherchez le paramètre de variables d'environnement dans la configuration renvoyée.

Exemple de code

Pour obtenir un exemple de code montrant comment accéder aux variables d'environnement de votre code, reportez-vous à la section Gérer une configuration sensible avec Secret Manager du tutoriel sur l'authentification des utilisateurs finaux.

Étapes suivantes

Vous pouvez utiliser des variables d'environnement pour définir la configuration du pack de création. Pour en savoir plus sur chaque langage, consultez la documentation sur Buildpacks pour: