Découvrez comment créer et utiliser des variables d'environnement dans Cloud Run for Anthos.
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. Par exemple, supposons que le service en cours d'exécution active une journalisation supplémentaire lorsqu'il lit LOGGING_VERBOSE: true
dans l'environnement. Dans ce scénario, vous définissez la paire clé/valeur pour la variable d'environnement comme ceci : LOGGING_VERBOSE=true
. Les commandes exactes et l'interface utilisateur sont présentées dans les sections suivantes.
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 for Anthos. Vous ne devriez pas la définir vous-même.
Définir des variables d'environnement sur un service
Toute modification 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 la console Google Cloud, de Google Cloud CLI ou d'un fichier YAML lorsque vous déployez un nouveau service, ou mettez à jour un service existant et déployez une révision :
Console
Accédez à Cloud Run for Anthos dans la console Google Cloud :
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.
Sous Paramètres avancés, cliquez sur Variables et secrets.
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.
Cliquez sur Suivant pour passer à la section suivante.
Dans la section Configurer la manière dont ce service est déclenché, sélectionnez la connectivité que vous souhaitez utiliser pour appeler le service.
Cliquez sur Create (Créer) pour déployer l'image sur Cloud Run pour Anthos et attendez la fin du déploiement.
Ligne de commande
Vous pouvez utiliser Google Cloud CLI pour définir des variables d'environnement pour les nouveaux services ou pour mettre à jour des services existants :
Pour les services existants, mettez à jour les variables d'environnement en exécutant la commande
gcloud run services update
avec l'un des paramètres suivants :Exemple :
gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
Remplacez :
- SERVICE par le nom de votre service.
- KEY1=VALUE1,KEY2=VALUE2 par une liste de paires nom/valeur séparées par des virgules pour chaque variable d'environnement. Spécifiez le nom de la variable d'environnement pour chaque clé (KEY) et la valeur de cette variable d'environnement pour VALUE. Découvrez comment spécifier plusieurs paramètres.
-
Pour spécifier une variable d'environnement contenant une virgule (
,
), vous devez échapper chaque KEY=VALUE avec un délimiteur différent. Par exemple, si vous utilisez@
:--set-env-vars "^@^KEY1=value,with,commas@KEY2=anothervalue@KEY3..."
-
Pour spécifier plusieurs ensembles de paires clé/valeur, vous pouvez spécifier plusieurs paramètres pour plus de lisibilité. Exemple :
[...] --set-env-vars "KEY=VALUE1" \ --set-env-vars "KEY=VALUE2" \ --set-env-vars "KEY=VALUE3"
Options des paramètres de commande
Pour les nouveaux services, définissez les variables d'environnement en exécutant la commande
gcloud run deploy
avec le paramètre--set-env-vars
:gcloud run deploy SERVICE --image=IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
Remplacez :
- IMAGE_URL par une référence à l'image de conteneur, par exemple
gcr.io/myproject/my-image:latest
; - SERVICE par le nom de votre service.
- KEY1=VALUE1,KEY2=VALUE2 par une liste de paires nom/valeur séparées par des virgules pour chaque variable d'environnement. Spécifiez le nom de la variable d'environnement pour chaque clé (KEY) et la valeur de cette variable d'environnement pour VALUE. Découvrez comment spécifier plusieurs paramètres.
-
Pour spécifier une variable d'environnement contenant une virgule (
,
), vous devez échapper chaque KEY=VALUE avec un délimiteur différent. Par exemple, si vous utilisez@
:--set-env-vars "^@^KEY1=value,with,commas@KEY2=anothervalue@KEY3..."
-
Pour spécifier plusieurs ensembles de paires clé/valeur, vous pouvez spécifier plusieurs paramètres pour plus de lisibilité. Exemple :
[...] --set-env-vars "KEY=VALUE1" \ --set-env-vars "KEY=VALUE2" \ --set-env-vars "KEY=VALUE3"
Options des paramètres de commande
- IMAGE_URL par une référence à l'image de conteneur, par exemple
YAML
Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe
à l'aide de l'option --format=export
.
Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud beta run services replace
.
Veillez à ne modifier que les attributs spécifiés.
Téléchargez la configuration de votre service dans un fichier nommé
service.yaml
sur l'espace de travail local :gcloud run services describe SERVICE --format export > service.yaml
Remplacez SERVICE par le nom de votre service Cloud Run pour Anthos.
Dans votre fichier local, mettez à jour les attributs
name
etvalue
sous l'attributenv
souscontainers:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
Remplacez
- SERVICE par le nom de votre service Cloud Run pour Anthos ;
- 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.
Remplacez la configuration du service en utilisant la commande suivante :
gcloud beta run services replace service.yaml
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 les variables de service
Si vous définissez une variable d'environnement par défaut dans le conteneur et que vous définissez une variable d'environnement portant le même nom sur le service Cloud Run pour Anthos, la valeur définie au niveau du service est prioritaire.
Activer les liens de services Kubernetes
Pour utiliser les liens de services Kubernetes, vous devez activer manuellement la compatibilité. En raison des problèmes de performances constatés dans les espaces de noms avec des milliers de services et de révisions, les liens de services Kubernetes ont été désactivés par défaut en janvier 2021.
Pour activer les liens de service Kubernetes, exécutez la commande suivante pour définir data.enable-service-links
sur true
dans votre ConfigMap knative-serving/config-defaults
:
kubectl patch cm -n knative-serving config-defaults -p '{"data":{"enable-service-links":"true"}}