Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation des variables d’environnement Lambda
Vous pouvez utiliser des variables d’environnement pour ajuster le comportement de votre fonction sans mettre à jour le code. Une variable d’environnement est une paire de chaînes stockées dans la configuration spécifique à la version d’une fonction. L’environnement d’exécution de Lambda met les variables d’environnement à la disposition de votre code et définit les variables d’environnement supplémentaires qui contiennent des informations sur la fonction et la demande d’invocation.
Note
Pour renforcer la sécurité, nous vous recommandons d'utiliser à la AWS Secrets Manager place des variables d'environnement pour stocker les informations d'identification de la base de données et d'autres informations sensibles telles que les clés API ou les jetons d'autorisation. Pour de plus amples informations, veuillez consulter Utiliser des secrets Secrets Manager dans des fonctions Lambda.
Les variables d’environnement ne sont pas évaluées avant l’invocation de la fonction. Toute valeur que vous définissez est considérée comme une chaîne littérale et non développée. Effectuez l’évaluation de la variable dans le code de votre fonction.
Création de variables d’environnement Lambda
Vous pouvez configurer des variables d'environnement dans Lambda à l'aide de la console Lambda, du AWS Command Line Interface (AWS CLI), AWS Serverless Application Model (AWS SAM) ou d'un AWS SDK.
Exemple de scénario pour les variables d’environnement
Vous pouvez utiliser des variables d’environnement pour personnaliser le comportement des fonctions dans vos environnements de test et de production. Vous pouvez par exemple créer deux fonctions avec le même code mais une configuration différente. Une fonction se connecte à une base de données de test et l’autre à une base de données de production. Dans ce cas, vous utilisez des variables d’environnement pour transmettre à la fonction le nom d’hôte, ainsi que d’autres détails de connexion pour la base de données.
L’exemple suivant montre comment définir l’hôte de la base de données et le nom de base de données en tant que variables d’environnement.
Si vous souhaitez que votre environnement de test génère plus d’informations de débogage que l’environnement de production, vous pouvez définir une variable d’environnement pour configurer votre environnement de test de manière à utiliser une journalisation plus approfondie ou un suivi plus détaillé.
Par exemple, dans votre environnement de test, vous pouvez définir une variable d’environnement avec la clé LOG_LEVEL et une valeur indiquant le niveau de journalisation du débogage ou du suivi. Dans le code de votre fonction Lambda, vous pouvez ensuite utiliser cette variable d’environnement pour définir le niveau de journalisation.
Les exemples de code suivants en Python Node.js illustrent comment vous pouvez y parvenir. Ces exemples supposent que votre variable d'environnement a une valeur DEBUG en Python ou debug en Node.js.
Récupération de variables d’environnement Lambda
Pour récupérer les variables d’environnement dans le code de votre fonction, utilisez la méthode standard pour votre langage de programmation.
Lambda stocke les variables d’environnement en toute sécurité en les chiffrant au repos. Vous pouvez configurer Lambda pour utiliser une clé de chiffrement différente, chiffrer les valeurs des variables d'environnement côté client ou définir des variables d'environnement dans un CloudFormation modèle avec. AWS Secrets Manager
Variables d’environnement d’exécution définies
Les runtimes Lambda définissent plusieurs variables d’environnement lors de l’initialisation. La plupart des variables d’environnement fournissent des informations sur la fonction ou l’exécution. Les clés de ces variables d’environnement sont réservées et ne peuvent pas être définies dans la configuration de la fonction.
Variables d’environnement réservées
-
_HANDLER– Emplacement de gestionnaire configuré sur la fonction. -
_X_AMZN_TRACE_ID– En-tête de suivi X-Ray . Cette variable d'environnement change à chaque invocation.-
Cette variable d'environnement n'est pas définie pour les environnements d' OS-only exécution (la famille
providedd'exécution). Vous pouvez définir_X_AMZN_TRACE_IDpour les environnements d’exécution personnalisés à l’aide de l’en-tête de réponseLambda-Runtime-Trace-Idde l’Invocation suivante. -
Pour les versions 17 et ultérieures du runtime Java, cette variable d'environnement n'est pas utilisée. Lambda stocke plutôt les informations de suivi dans la propriété du système
com.amazonaws.xray.traceHeader.
-
-
AWS_DEFAULT_REGION— L' Région AWS endroit par défaut où la fonction Lambda est exécutée. -
AWS_REGION— L' Région AWS endroit où la fonction Lambda est exécutée. Si elle est définie, cette valeur remplaceAWS_DEFAULT_REGION.-
Pour plus d'informations sur l'utilisation des variables d' Région AWS environnement avec les AWS kits de développement logiciel, consultez AWS la section Région dans le Guide de référence AWS des kits de développement logiciel et des outils.
-
-
AWS_EXECUTION_ENV– Identifiant d’exécution, doté du préfixeAWS_Lambda_(par exemple,AWS_Lambda_java8). Cette variable d'environnement n'est pas définie pour les environnements d' OS-only exécution (la familleprovidedd'exécution). -
AWS_LAMBDA_FUNCTION_NAME– Nom de la fonction. -
AWS_LAMBDA_FUNCTION_MEMORY_SIZE– Quantité de mémoire disponible pour la fonction en Mo. -
AWS_LAMBDA_FUNCTION_VERSION– Version de la fonction en cours d’exécution. -
AWS_LAMBDA_INITIALIZATION_TYPE— Type d'initialisation de la fonction, qui eston-demandprovisioned-concurrencysnap-start, oulambda-managed-instances. Pour plus d'informations, consultez la section Configuration de la simultanéité provisionnée Améliorer les performances de démarrage avec Lambda SnapStart, ou. Instances gérées par Lambda -
AWS_LAMBDA_LOG_GROUP_NAME,AWS_LAMBDA_LOG_STREAM_NAME— Le nom du groupe Amazon CloudWatch Logs et du flux de la fonction. Les variablesAWS_LAMBDA_LOG_GROUP_NAMEd'AWS_LAMBDA_LOG_STREAM_NAMEenvironnement et ne sont pas disponibles dans les SnapStart fonctions Lambda. -
AWS_ACCESS_KEY,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN– Clés d’accès obtenues du rôle d’exécution de la fonction. -
AWS_LAMBDA_RUNTIME_API– (exécution personnalisée) Hôte et port de l’API d’exécution.. -
LAMBDA_TASK_ROOT– Chemin d’accès du code de la fonction Lambda. -
LAMBDA_RUNTIME_DIR– Chemin d’accès des bibliothèques de l’environnement d’exécution. -
AWS_LAMBDA_MAX_CONCURRENCY— (Instances gérées Lambda uniquement) Nombre maximum d'appels simultanés que Lambda enverra à un environnement d'exécution. -
AWS_LAMBDA_METADATA_API— Adresse du serveur de terminaison des métadonnées au format{ipv4_address}:{port}(par exemple,169.254.100.1:9001). -
AWS_LAMBDA_METADATA_TOKEN— Un jeton d'authentification unique pour l'environnement d'exécution actuel utilisé pour authentifier les demandes adressées au point de terminaison des métadonnées. Lambda génère ce jeton automatiquement lors de l'initialisation.
Les variables d’environnement supplémentaires suivantes ne sont pas réservées et peuvent être étendues dans la configuration de la fonction.
Variables d’environnement non réservées
-
LANG– Paramètres régionaux de l’environnement d’exécution (en_US.UTF-8). -
PATH– Chemin d’exécution (/usr/local/bin:/usr/bin/:/bin:/opt/bin). -
LD_LIBRARY_PATH– Chemin de la bibliothèque système (/var/lang/lib:/lib64:/usr/lib64:$LAMBDA_RUNTIME_DIR:$LAMBDA_RUNTIME_DIR/lib:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/lib:/opt/lib). -
NODE_PATH— (Node.js) Le chemin Node.js de la bibliothèque (/opt/nodejs/node12/node_modules/:/opt/nodejs/node_modules:$LAMBDA_RUNTIME_DIR/node_modules). -
NODE_OPTIONS— (Node.js) Pour les Node.js environnements d'exécution, vous pouvezNODE_OPTIONSréactiver les fonctionnalités expérimentales que Lambda désactive par défaut. -
PYTHONPATH: (Python) le chemin de la bibliothèque Python ($LAMBDA_RUNTIME_DIR). -
GEM_PATH– (Ruby) Chemin d’accès de la bibliothèque Ruby ($LAMBDA_TASK_ROOT/vendor/bundle/ruby/3.3.0:/opt/ruby/gems/3.3.0). -
AWS_XRAY_CONTEXT_MISSING— Pour le X-Ray traçage, Lambda définit ce paramètre pourLOG_ERRORéviter de générer des erreurs d'exécution depuis le X-Ray SDK. -
AWS_XRAY_DAEMON_ADDRESS— Pour le X-Ray traçage, l'adresse IP et le port du X-Ray démon. -
AWS_LAMBDA_DOTNET_PREJIT: (.NET) définissez cette variable pour activer ou désactiver les optimisations d’environnement d’exécution spécifiques à .NET. Les valeurs incluentalways,neveretprovisioned-concurrency. Pour de plus amples informations, veuillez consulter Configuration de la simultanéité provisionnée pour une fonction. -
TZ– Fuseau horaire de l’environnement (:UTC). L’environnement d’exécution utilise NTP pour synchroniser l’horloge système.
Les valeurs d’exemple affichées reflètent les derniers moteurs d’exécution. La présence de variables spécifiques ou leurs valeurs peuvent varier dans les anciens environnements d’exécution.