Configurer les variables d'environnement (1re génération)
Vous pouvez déployer des paires clé/valeur arbitraires avec une fonction Cloud Run. Ces paires sont mises à la disposition de votre fonction sous forme d'un littéral de type Variables d'environnement accessible par votre code lors de l'exécution ou en tant qu'informations de configuration pourBuildpacks Google Cloud.
Les variables d'environnement sont liées à une seule fonction et ne sont pas visibles par les autres fonctions de votre projet Google Cloud. Chaque variable est stockée dans le backend Cloud Run Functions et existe dans le même cycle de vie que la fonction à laquelle elle est associée.
Vous pouvez ajouter ou supprimer des variables d'environnement d'exécution à l'aide de Google Cloud CLI ou de la console Google Cloud.
Définir des variables d'environnement d'exécution
Utilisez ces méthodes pour établir de nouvelles variables ou remplacer complètement des variables existantes. Pour effectuer des modifications, utilisez le processus de mise à jour décrit dans la section suivante.
gcloud
Pour définir une variable d'environnement d'exécution à l'aide de Google Cloud CLI, utilisez l'option --set-env-vars
lors du déploiement :
gcloud functions deploy --no-gen2 FUNCTION_NAME --set-env-vars FOO=bar FLAGS ...
Vous pouvez également définir plusieurs variables d'environnement d'exécution en utilisant une liste séparée par des virgules :
gcloud functions deploy --no-gen2 FUNCTION_NAME --set-env-vars FOO=bar,BAZ=boo FLAGS...
Si vous souhaitez stocker votre configuration dans un fichier (avec gestion des versions, par exemple), utilisez un fichier YAML avec l'option --env-vars-file
:
gcloud functions deploy --no-gen2 FUNCTION_NAME --env-vars-file .env.yaml FLAGS...
le contenu du fichier .env.yaml
étant le suivant :
FOO: bar
BAZ: boo
Dans l'exemple ci-dessus, FLAGS...
fait référence aux autres options que vous transmettez lors du déploiement de votre fonction. Pour en savoir plus sur la commande deploy
, reportez-vous à la documentation de référence sur gcloud functions deploy
.
L'interface utilisateur de Google Cloud Console
Vous pouvez définir des variables d'environnement d'exécution lors de la création d'une fonction dans la console Google Cloud :
Ouvrez la page de présentation de Cloud Functions dans la console Google Cloud :
Cliquez sur Créer une fonction.
Renseignez les champs obligatoires de votre fonction.
Ouvrez la section Paramètres d'exécution, de compilation et de connexion.
Sélectionnez l'onglet Environnement d'exécution.
Dans la section Variables d'environnement de compilation, cliquez sur Ajouter une variable, puis ajoutez le nom et la valeur.
Pour savoir comment ajouter des variables d'environnement à une fonction existante, consultez la section Mettre à jour des variables d'environnement d'exécution.
Mettre à jour des variables d'environnement d'exécution
Vous pouvez également mettre à jour les variables d'environnement d'exécution pour les fonctions existantes. Il s'agit d'une approche non destructrice, qui permet de modifier ou d'ajouter des variables d'environnement sans les supprimer.
gcloud
Pour mettre à jour une variable à l'aide de Google Cloud CLI, utilisez l'option --update-env-vars
lors du déploiement :
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-env-vars FOO=bar
Vous pouvez également définir plusieurs variables d'environnement d'exécution en utilisant une liste séparée par des virgules :
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-env-vars FOO=bar,BAZ=boo
L'interface utilisateur de Google Cloud Console
Pour mettre à jour des variables d'environnement d'exécution à l'aide de la console Google Cloud, procédez comme suit :
Ouvrez la page de présentation de Cloud Functions dans la console Google Cloud :
Cliquez sur une fonction existante pour accéder à ses détails.
Cliquez sur Modifier.
Ouvrez la section Paramètres d'exécution, de compilation et de connexion.
Sélectionnez l'onglet Environnement d'exécution.
Effectuez des modifications dans la section Variables d'environnement d'exécution.
Supprimer des variables d'environnement d'exécution
gcloud
Si vous souhaitez supprimer des variables d'environnement d'exécution de manière sélective, vous pouvez utiliser l'option --remove-env-vars
au moment du déploiement :
gcloud functions deploy FUNCTION_NAME --no-gen2 --remove-env-vars FOO,BAZ
Vous pouvez également effacer l'ensemble des variables d'environnement d'exécution définies précédemment à l'aide de l'option --clear-env-vars
:
gcloud functions deploy FUNCTION_NAME --no-gen2 --clear-env-vars
L'interface utilisateur de Google Cloud Console
Pour supprimer des variables d'environnement d'exécution à l'aide de la console Google Cloud, procédez comme suit :
Ouvrez la page de présentation de Cloud Functions dans la console Google Cloud :
Cliquez sur une fonction existante pour accéder à ses détails.
Cliquez sur Modifier.
Ouvrez la section Paramètres d'exécution, de compilation et de connexion.
Sélectionnez l'onglet Environnement d'exécution.
Dans la section Variables d'environnement d'exécution, cliquez sur l'icône de corbeille à côté de la paire clé/valeur pour la supprimer.
Variables d'environnement d'exécution définies automatiquement
Cette section répertorie les variables d'environnement définies automatiquement.
Clé | Description |
---|---|
FUNCTION_TARGET |
Réservée : fonction à exécuter. |
FUNCTION_SIGNATURE_TYPE |
Réservée : type de la fonction : http pour les fonctions HTTP et event pour les fonctions basées sur les événements.
|
K_SERVICE |
Réservée : nom de la ressource de la fonction. |
K_REVISION |
Réservée : identifiant de version de la fonction. |
PORT |
Réservée : port sur lequel la fonction est appelée. |
gcloud functions deploy envVarMemory \
--no-gen2 \
--runtime nodejs10 \
--set-env-vars FUNCTION_MEMORY_MB=2Gi \
--memory 2Gi \
--trigger-http
Définir et récupérer des variables d'environnement d'exécution : exemple
Définissez la variable d'environnement d'exécution :
Node.js
gcloud functions deploy envVar \ --runtime nodejs20 \ --set-env-vars FOO=bar \ --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version Node.js compatible pour exécuter votre fonction.
Python
gcloud functions deploy env_vars \ --runtime python312 \ --set-env-vars FOO=bar \ --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version Python compatible pour exécuter votre fonction.
Go
gcloud functions deploy EnvVar \ --runtime go121 \ --set-env-vars FOO=bar \ --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version Go compatible pour exécuter votre fonction.
Java
gcloud functions deploy java-envVar-function \ --entry-point functions.EnvVars \ --runtime java17 \ --memory 512MB \ --set-env-vars FOO=bar \ --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version Java compatible pour exécuter votre fonction.
C#
gcloud functions deploy csharp-envVar-function \ --entry-point EnvironmentVariables.Function \ --runtime dotnet6 \ --set-env-vars FOO=bar \ --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version .NET compatible pour exécuter votre fonction.
Ruby
gcloud functions deploy env_vars --runtime ruby32 \ --set-env-vars FOO=bar \ --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version Ruby compatible pour exécuter votre fonction.
PHP
gcloud functions deploy envVar --runtime php82 \ --set-env-vars FOO=bar \ --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version PHP compatible pour exécuter votre fonction.
Lors de l'exécution, accédez aux variables de manière automatisée :
Node.js
Dans Node.js, utilisez la propriété process.env
pour accéder aux variables d'environnement d'exécution :
Python
En Python, utilisez os.environ
pour accéder aux variables d'environnement d'exécution :
Go
En Go, utilisez os.Getenv()
pour accéder aux variables d'environnement d'exécution :
Java
En Java, utilisez System.getenv
pour accéder aux variables d'environnement d'exécution :
C#
Au moment de l'exécution, les variables d'environnement sont accessibles via la propriétéEnvironment.GetEnvironmentVariable
en Go :
Ruby
Au moment de l'exécution, les variables d'environnement sont accessibles viaENV
en Ruby :
PHP
Au moment de l'exécution, les variables d'environnement sont accessibles à l'aide de la fonctiongetenv
de PHP :
Utiliser des variables d'environnement de compilation
Vous pouvez également définir des variables d'environnement de compilation pour les environnements d'exécution compatibles avec les packs de création.
Les variables d'environnement de compilation sont des paires clé/valeur déployées conjointement à une fonction. Elles vous permettent de transmettre des informations de configuration aux packs de création. Par exemple, vous pouvez personnaliser les options du compilateur. Vous pouvez ajouter ou supprimer ces variables d'environnement de compilation à l'aide de Google Cloud CLI ou de l'interface utilisateur de la console Google Cloud.
Définir des variables d'environnement de compilation
Utilisez ces méthodes pour établir de nouvelles variables ou remplacer complètement des variables existantes. Pour effectuer des modifications, utilisez le processus de mise à jour (l'option --update-build-env-vars
dans gcloud
) décrit dans la section suivante.
gcloud
Pour définir une variable à l'aide de Google Cloud CLI, utilisez l'option --set-build-env-vars
lors du déploiement :
gcloud beta functions deploy FUNCTION_NAME --no-gen2 --set-build-env-vars FOO=bar FLAGS...
Vous pouvez également définir plusieurs variables d'environnement de compilation en utilisant une liste séparée par des virgules :
gcloud functions deploy FUNCTION_NAME --no-gen2 --set-build-env-vars FOO=bar,BAZ=boo FLAGS...
Si vous souhaitez stocker votre configuration dans un fichier (avec gestion des versions, par exemple), utilisez un fichier YAML avec l'option --build-env-vars-file
:
gcloud functions deploy FUNCTION_NAME --no-gen2 --build-env-vars-file FILE_NAME.yaml FLAGS...
le contenu du fichier *.yaml
étant le suivant :
FOO: bar
BAZ: boo
Dans l'exemple ci-dessus, FLAGS...
fait référence aux autres options que vous transmettez lors du déploiement de votre fonction. Pour en savoir plus sur la commande deploy
, reportez-vous à la documentation de référence sur gcloud beta functions deploy
.
L'interface utilisateur de Google Cloud Console
Vous pouvez également définir des variables d'environnement de compilation lors de la création de la fonction dans la console Google Cloud :
Ouvrez la page de présentation de Cloud Functions dans la console Google Cloud :
Cliquez sur Créer une fonction.
Renseignez les champs obligatoires de votre fonction.
Ouvrez la section Paramètres d'exécution, de compilation et de connexion.
Sélectionnez l'onglet Compilation.
Dans la section Variables d'environnement de compilation, cliquez sur Ajouter une variable, puis ajoutez le nom et la valeur.
Mettre à jour des variables d'environnement de compilation
Vous pouvez également mettre à jour les variables d'environnement de compilation pour les fonctions existantes. Il s'agit d'une approche non destructrice, qui permet de modifier ou d'ajouter des variables d'environnement sans suppression.
gcloud
Pour définir une variable à l'aide de Google Cloud CLI, utilisez l'option --update-build-env-vars
lors du déploiement :
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-build-env-vars FOO=bar
Vous pouvez également mettre à jour plusieurs variables d'environnement de compilation en utilisant une liste séparée par des virgules :
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-build-env-vars FOO=bar,BAZ=boo
L'interface utilisateur de Google Cloud Console
Pour mettre à jour des variables d'environnement de compilation à l'aide de la console Google Cloud, procédez comme suit :
Ouvrez la page de présentation de Cloud Functions dans la console Google Cloud :
Cliquez sur une fonction existante pour accéder à ses détails.
Cliquez sur Modifier.
Ouvrez la section Paramètres d'exécution, de compilation et de connexion.
Sélectionnez l'onglet Compilation.
Effectuez les modifications dans la section Variables d'environnement de compilation.
Supprimer des variables d'environnement de compilation
gcloud
Si vous souhaitez supprimer des variables d'environnement de compilation de manière sélective, vous pouvez utiliser l'option --remove-build-env-vars
au moment du déploiement :
gcloud functions deploy FUNCTION_NAME --no-gen2 --remove-build-env-vars FOO,BAZ
Vous pouvez également effacer l'ensemble des variables d'environnement de compilation définies précédemment à l'aide de l'option --clear-build-env-vars
:
gcloud functions deploy FUNCTION_NAME --no-gen2 --clear-build-env-vars
L'interface utilisateur de Google Cloud Console
Pour supprimer des variables d'environnement de compilation à l'aide de la console Google Cloud, procédez comme suit :
Ouvrez la page de présentation de Cloud Functions dans la console Google Cloud :
Cliquez sur une fonction existante pour accéder à ses détails.
Cliquez sur Modifier.
Ouvrez la section Paramètres d'exécution, de compilation et de connexion.
Sélectionnez l'onglet Compilation.
Dans la section Variables d'environnement de compilation, cliquez sur l'icône de corbeille à côté de la paire clé/valeur pour la supprimer.
Cycle de vie d'une variable
Les variables d'environnement sont liées au déploiement d'une fonction Cloud Run et ne peuvent être définies ou modifiées que lors d'un déploiement. Si un déploiement échoue pour une raison quelconque, les modifications apportées aux variables d'environnement ne seront pas appliquées. Pour que les variables d'environnement soient modifiées, le déploiement doit être réussi.
Bonnes pratiques et variables d'environnement réservées
D'autres variables d'environnement sont définies automatiquement suivant l'environnement d'exécution utilisé par votre fonction. Celles-ci dépendent du système d'exploitation de l'environnement d'exécution (par exemple, DEBIAN_FRONTEND
, SHLVL
ou PATH
) ainsi que de l'environnement d'exécution du langage (par exemple NODE_ENV
, VIRTUAL_ENV
ou GOPATH
).
Les variables d'environnement fournies par l'environnement (autres que celles répertoriées dans la section Variables d'environnement définies automatiquement) pourront faire l'objet de modifications dans des versions d'exécution ultérieures. Il est déconseillé de modifier ou de dépendre de variables d'environnement que vous n'avez pas définies explicitement.
Modifier les variables d'environnement fournies par l'environnement peut avoir des conséquences imprévisibles. Les tentatives de modification de ces variables d'environnement peuvent être bloquées ou, pire, avoir des conséquences inattendues comme empêcher le lancement de certaines fonctions. Nous vous recommandons de préfixer les variables d'environnement à l'aide d'une clé unique afin d'éviter tout conflit.
Enfin, vous ne pouvez pas utiliser les variables d'environnement suivantes :
Clé | Description |
---|---|
Vide ('') | Une clé ne peut pas être une chaîne vide. |
= |
Une clé ne peut pas contenir le caractère "=". |
X_GOOGLE_ |
Une clé ne peut pas contenir le préfixe X_GOOGLE_ . |
Limites de taille
Le nombre total d'octets utilisés par les noms et les valeurs des variables d'environnement d'exécution pour une fonction individuelle est limité à 32 Kio. Cependant, il n'y a pas de limite spécifique pour les clés ou les valeurs individuelles dans cette capacité globale.
Pour les variables d'environnement de compilation, vous pouvez définir jusqu'à 100 variables, avec la chaîne de définition foo=bar
limitée à 64 Kio.
Gérer les secrets
Les variables d'environnement peuvent être utilisées pour la configuration des fonctions, mais elles ne sont pas recommandées pour stocker des codes secrets, tels que les identifiants de bases de données ou les clés API. Ces valeurs plus sensibles doivent être stockées en dehors de votre code source et des variables d'environnement. Certains environnements d'exécution ou frameworks peuvent entraîner l'envoi du contenu de variables d'environnement vers les journaux, et il est déconseillé de stocker des identifiants sensibles dans les fichiers YAML, les scripts de déploiement ou les fichiers soumis à la gestion des versions.
Pour stocker des secrets, nous vous recommandons d'utiliser Secret Manager. Pour configurer Cloud Run Functions de manière à accéder aux secrets stockés dans Secret Manager, consultez Configurer les secrets. Notez qu'il n'existe pas d'intégration spécifique de Cloud KMS avec les fonctions Cloud Run.
Portabilité
Il est possible que les variables d'environnement qui fonctionnent actuellement avec votre fonction Cloud Run ne fonctionnent pas avec un environnement d'exécution différent, par exemple dans un autre langage, ou avec certains outils et bibliothèques. Il se peut également qu'elles ne soient pas acceptées par une plate-forme différente.
Pour éviter ce type de problèmes, suivez la norme POSIX pour les variables d'environnement.
Si vous utilisez la console Google Cloud pour modifier des variables, vous êtes averti chaque fois que vous définissez une variable susceptible de présenter des problèmes de portabilité (mais cela n'empêche pas le déploiement). En règle générale, nous recommandons que les clés des variables d'environnement se composent uniquement de lettres majuscules, de chiffres et du caractère <underscore>
(_
), comme défini dans le jeu de caractères compatibles, et qu'elles ne commencent pas par un chiffre.