Environnements d’exécution (runtimes) Lambda
Lambda prend en charge plusieurs langages via l’utilisation d’environnements d’exécution. Une exécution fournit un environnement spécifique au langage qui relaie les événements d’invocation, les informations de contexte et les réponses entre Lambda et la fonction. Vous pouvez utiliser les runtimes que Lambda fournit, ou créer vos propres runtimes.
Lambda est indépendant de votre choix d’environnement d’exécution. Pour les fonctions simples, les langages interprétés tels que Python et Node.js offrent les performances les plus rapides. Pour les fonctions nécessitant des calculs plus complexes, les langages compilés tels que Java sont souvent plus lents à initialiser, mais s’exécutent rapidement dans le gestionnaire Lambda. Le choix de l’environnement d’exécution dépend également des préférences du développeur et de sa connaissance du langage.
Chaque version majeure du langage de programmation possède un environnement d’exécution distinct, avec un identifiant de l’environnement d’exécution unique, tel que nodejs22.x ou python3.13. Pour configurer une fonction afin d’utiliser une nouvelle version majeure du langage, vous devez modifier l’identifiant d’exécution. Comme AWS Lambda ne peut pas garantir la rétrocompatibilité entre les versions majeures, il s’agit d’une opération à la demande du client.
Pour une fonction définie en tant qu’image de conteneur, vous choisissez une exécution et la distribution Linux lorsque vous créez l’image de conteneur. Pour modifier l’environnement d’exécution, vous créez une image de conteneur.
Lorsque vous utilisez une archive de fichiers .zip pour le package de déploiement, vous choisissez un environnement d’exécution lorsque vous créez la fonction. Pour modifier l’environnement d’exécution, vous pouvez mettre à jour la configuration de votre fonction. L’environnement d’exécution est associé à l’une des distributions Amazon Linux. L’environnement d’exécution sous-jacent fournit des bibliothèques et des variables d’environnement supplémentaires auxquelles vous pouvez accéder depuis le code de votre fonction.
Lambda invoque votre fonction dans un environnement d’exécution. L’environnement d’exécution fournit un environnement d’environnement d’exécution sécurisé et isolé qui gère les ressources nécessaires à l’exécution de votre fonction. Lambda réutilise l’environnement d’exécution à partir d’une invocation antérieure dans le cas où il y en a un disponible, ou il peut en créer un nouveau.
Pour utiliser d'autres langages dans Lambda, tels que Go ou Rust, utilisez un environnement d'exécution uniquement pour le système d'exploitation. L’environnement d’exécution de Lambda fournit une interface d’environnement d’exécution pour obtenir des événements d’invocations et envoyer des réponses. Vous pouvez déployer les autres langages en implémentant un environnement d’exécution en association avec le code de votre fonction, ou dans une couche.
Environnements d'exécution pris en charge
Le tableau suivant répertorie les durées d'exécution Lambda prises en charge et les dates d'obsolescence prévues. Une fois qu'un environnement d'exécution est obsolète, vous pouvez toujours créer et mettre à jour des fonctions pendant une période limitée. Pour de plus amples informations, consultez Environnement d’exécution utilisé après la date d’obsolescence. Le tableau fournit les dates actuellement prévues pour la dépréciation de l’exécution sur la base de notre politique d’obsolescence de l’exécution. Ces dates sont fournies à des fins de planification et sont susceptibles d'être modifiées.
| Nom | Identifiant | Système d’exploitation | Date d’obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage |
|---|---|---|---|---|---|
|
Node.js 22 |
|
Amazon Linux 2023 |
30 avril 2027 |
1 juin 2027 |
1 juillet 2027 |
|
Node.js 20 |
|
Amazon Linux 2023 |
30 avril 2026 |
1 juin 2026 |
1 juillet 2026 |
|
Python 3.13 |
|
Amazon Linux 2023 |
30 juin 2029 |
31 juillet 2029 |
31 août 2029 |
|
Python 3.12 |
|
Amazon Linux 2023 |
31 octobre 2028 |
30 novembre 2028 |
10 janvier 2029 |
|
Python 3.11 |
|
Amazon Linux 2 |
30 juin 2026 |
31 juillet 2026 |
31 août 2026 |
|
Python 3.10 |
|
Amazon Linux 2 |
30 juin 2026 |
31 juillet 2026 |
31 août 2026 |
|
Python 3.9 |
|
Amazon Linux 2 |
15 décembre 2025 |
3 février 2026 |
9 mars 2026 |
|
Java 21 |
|
Amazon Linux 2023 |
30 juin 2029 |
31 juillet 2029 |
31 août 2029 |
|
Java 17 |
|
Amazon Linux 2 |
30 juin 2026 |
31 juillet 2026 |
31 août 2026 |
|
Java 11 |
|
Amazon Linux 2 |
30 juin 2026 |
31 juillet 2026 |
31 août 2026 |
|
Java 8 |
|
Amazon Linux 2 |
30 juin 2026 |
31 juillet 2026 |
31 août 2026 |
|
.NET 9 (conteneur uniquement) |
|
Amazon Linux 2023 |
Non planifié |
Non planifié |
Non planifié |
|
.NET 8 |
|
Amazon Linux 2023 |
10 novembre 2026 |
10 décembre 2026 |
11 janvier 2027 |
|
Ruby 3.4 |
|
Amazon Linux 2023 |
Non planifié |
Non planifié |
Non planifié |
|
Ruby 3.3 |
|
Amazon Linux 2023 |
31 mars 2027 |
30 avril 2027 |
31 mai 2027 |
|
Ruby 3.2 |
|
Amazon Linux 2 |
31 mars 2026 |
30 avril 2026 |
31 mai 2026 |
|
Exécution réservée au système d’exploitation |
|
Amazon Linux 2023 |
30 juin 2029 |
31 juillet 2029 |
31 août 2029 |
|
Exécution réservée au système d’exploitation |
|
Amazon Linux 2 |
30 juin 2026 |
31 juillet 2026 |
31 août 2026 |
Note
Pour les nouvelles régions, Lambda ne prendra pas en charge les environnements d'exécution qui devraient devenir obsolètes dans les six prochains mois.
Lambda tient à jour les environnements d’exécution gérés et de leurs images de conteneur correspondantes à jour grâce à des correctifs et à la prise en charge des versions mineures. Pour plus d'informations, consultez Mises à jour de l'exécution Lambda.
Pour interagir par programmation avec d’autres ressources et Services AWS de votre fonction Lambda, vous pouvez utiliser l’un des SDK AWS. Les environnements d’exécution Node.js, Python et Ruby incluent une version du SDK AWS. Toutefois, pour conserver le contrôle total de vos dépendances et optimiser la rétrocompatibilité lors des mises à jour automatiques de l’exécution, nous vous recommandons de toujours inclure les modules SDK utilisés par votre code (ainsi que les dépendances éventuelles) dans le package de déploiement de votre fonction ou dans une couche Lambda.
Nous vous recommandons d’utiliser la version du SDK incluant l’environnement d’exécution uniquement lorsque vous ne pouvez pas inclure de packages supplémentaires dans votre déploiement, par exemple lorsque vous créez votre fonction à l’aide de l’éditeur de code de la console Lambda, avec un code de fonction intégré dans un modèle CloudFormation.
Lambda met à jour régulièrement les versions des SDK AWS inclus dans les environnements d’exécution Node.js, Python et Ruby. Pour déterminer la version du SDK AWS incluse dans l’environnement d’exécution que vous utilisez, consultez les sections suivantes :
Lambda continue de prendre en charge le langage de programmation Go après l’obsolescence de l’environnement d’exécution Go 1.x. Pour plus d’informations, consultez la section Migration des fonctions AWS Lambda de l’environnement d’exécution Go1.x vers l’environnement d’exécution personnalisé sur Amazon Linux 2
Tous les environnements d’exécution Lambda pris en charge supportent les architectures x86_64 et arm64.
Nouvelles versions d'exécution
Lambda fournit des environnements d’exécution gérés pour les nouvelles versions de langage uniquement lorsque la version atteint la phase LTS (support à long terme) du cycle de distribution du langage. Par exemple, pour le cycle de distribution de Node.js
Avant que la version n'atteigne la phase de support à long terme, elle reste en développement et peut encore faire l'objet de modifications majeures. Lambda applique automatiquement les mises à jour d’environnements d'exécution par défaut, de sorte que l'interruption des modifications apportées à une version d’environnement d'exécution peut empêcher vos fonctions de fonctionner comme prévu.
Lambda ne fournit pas d'environnements d'exécution gérés pour les versions linguistiques dont la sortie du LTS n'est pas prévue.
La liste suivante montre le mois de lancement cible pour les environnements d’exécution Lambda à venir. Ces dates ne sont données qu’à titre indicatif et sont susceptibles d’être modifiées.
-
Java 25 – Novembre 2025
-
Python 3.14 : novembre 2025
-
Node.js 24 : novembre 2025
-
.NET 10 - janvier 2026
politique d’obsolescence de l’exécution
Les environnements d’exécution Lambda pour les archives de fichiers .zip combinent un système d’exploitation, un langage de programmation et des bibliothèques de logiciels qui font l’objet d’une maintenance et de mises à jour de sécurité. La stratégie d’obsolescence standard de Lambda consiste à rendre obsolète un environnement d’exécution lorsqu’un composant majeur de celui-ci atteint la fin du support communautaire à long terme (LTS) et que les mises à jour de sécurité ne sont plus disponibles. Le plus souvent, il s’agit de l’environnement d’exécution du langage, bien que dans certains cas, un environnement d’exécution puisse être obsolète car le système d’exploitation (OS) atteint la fin du LTS.
Une fois qu’un environnement d’exécution est obsolète, AWS ne peut plus lui appliquer de correctifs ou de mises à jour de sécurité, et les fonctions utilisant cet environnement d’exécution ne sont plus éligibles à l’assistance technique. Ces environnements d’exécution obsolètes sont fournis « en l’état », sans aucune garantie, et peuvent contenir des bogues, des erreurs, des défauts ou d’autres vulnérabilités.
Pour en savoir plus sur la gestion des mises à niveau d’environnement d’exécution et de l’obsolescence, consultez les sections suivantes et Gestion des mises à niveau d’environnement d’exécution AWS Lambda
Important
Lambda retarde parfois l’obsolescence d’un environnement d’exécution Lambda pendant une période limitée au-delà de la date de fin du support de la version du langage prise en charge par l’environnement d’exécution. Pendant cette période, Lambda applique uniquement des correctifs de sécurité au système d’exploitation de l’environnement d’exécution. Lambda n’applique pas de correctifs de sécurité aux environnements d’exécution des langages de programmation une fois leur date de fin de support atteinte.
Modèle de responsabilité partagée
Lambda est responsable de la conservation et de la publication des mises à jour de sécurité pour tous les environnements d’exécution gérés et les images de base de conteneur pris en charge. Par défaut, Lambda appliquera ces mises à jour automatiquement aux fonctions utilisant des environnements d’exécution gérés. Lorsque le paramètre de mise à jour automatique de l’environnement d’exécution par défaut a été modifié, consultez le modèle de responsabilité partagée des contrôles de gestion de l’environnement d’exécution. Pour les fonctions déployées à l’aide d’images de conteneurs, vous êtes responsable de la reconstruction de l’image de conteneur de votre fonction à partir de la dernière image de base et du redéploiement de l’image de conteneur.
Lorsqu’un environnement d’exécution devient obsolète, la responsabilité de Lambda en matière de mise à jour de l’environnement d’exécution géré et des images de base de conteneur cesse. Vous êtes responsable de la mise à niveau de vos fonctions afin d’utiliser un environnement d’exécution ou une image de base compatible.
Dans tous les cas, vous êtes responsable de l’application des mises à jour de votre code de fonction, y compris ses dépendances. Vos responsabilités dans le cadre du modèle de responsabilité partagée sont résumées dans le tableau suivant.
| Phase de cycle de vie de l’environnement d’exécution | Responsabilité de Lambda | Vos responsabilités |
|---|---|---|
| Environnement d’exécution géré pris en charge |
Fournissez des mises à jour d’environnement d’exécution régulières avec des correctifs de sécurité et d’autres mises à jour. Appliquer les mises à jour de l’environnement d’exécution automatiquement par défaut (consultez Modes de mise à jour de l’environnement d’exécution pour les comportements autres que ceux par défaut). |
Mettez à jour votre code de fonction, y compris ses dépendances, pour corriger les éventuelles failles de sécurité. |
| Image de conteneur prise en charge | Fournissez des mises à jour régulières de l’image de base du conteneur avec des correctifs de sécurité et autres mises à jour. |
Mettez à jour votre code de fonction, y compris ses dépendances, pour corriger les éventuelles failles de sécurité. Reconstruisez et redéployez régulièrement votre image de conteneur à l’aide de la dernière image de base. |
| Environnement d’exécution géré proche de l’obsolescence |
Avertissez les clients avant l’obsolescence de l’environnement d’exécution via la documentation, AWS Health Dashboard, les e-mails et Trusted Advisor. La responsabilité des mises à jour de l’environnement d’exécution prend fin en cas d’obsolescence. |
Surveillez la documentation Lambda, AWS Health Dashboard, les e-mails ou Trusted Advisor pour obtenir des informations sur l’obsolescence de l’environnement d’exécution. Mettez à niveau les fonctions vers un environnement d’exécution compatible avant que le précédent ne soit obsolète. |
| L’image de conteneur approche de l’obsolescence |
Les notifications d’obsolescence ne sont pas disponibles pour les fonctions utilisant des images de conteneur. La responsabilité des mises à jour de l’image de base du conteneur s’arrête à la date d’obsolescence. |
Tenez compte des planifications d’obsolescence et mettez à niveau les fonctions vers une image de base prise en charge avant que l’image précédente ne soit obsolète. |
Environnement d’exécution utilisé après la date d’obsolescence
Une fois qu’un environnement d’exécution est obsolète, AWS ne peut plus lui appliquer de correctifs ou de mises à jour de sécurité, et les fonctions utilisant cet environnement d’exécution ne sont plus éligibles à l’assistance technique. Vous pouvez continuer à invoquer vos fonctions indéfiniment, mais AWS recommande vivement d’effectuer une migration vers un environnement d’exécution compatible. Les environnements d’exécution obsolètes sont fournis « en l’état », sans aucune garantie, et peuvent contenir des bogues, des erreurs, des défauts ou d’autres vulnérabilités. Les fonctions qui utilisent un environnement d’exécution obsolète peuvent subir une dégradation des performances ou d’autres problèmes, tels que l’expiration d’un certificat, qui peuvent les empêcher de fonctionner correctement.
Vous pouvez mettre à jour une fonction pour qu’elle utilise un environnement d’exécution plus récent à tout moment après qu’un environnement d’exécution soit devenu obsolète. Nous vous recommandons de tester votre fonction avec le nouveau moteur d’exécution avant d’appliquer les modifications aux environnements de production. Vous ne pourrez plus revenir à l’environnement d’exécution obsolète une fois les mises à jour des fonctions bloquées. Nous vous recommandons d’utiliser des versions et alias de fonctions pour permettre un déploiement sécurisé avec restauration.
La chronologie suivante décrit ce qui se produit lorsqu’un environnement d’exécution est obsolète :
| Phase de cycle de vie de l’environnement d’exécution | Lorsque | Quoi |
|---|---|---|
|
Période d’avis d’obsolescence |
Au moins 180 jours avant l’obsolescence |
|
|
Obsolescence |
Date d’obsolescence |
|
|
Créer la fonction de blocage |
Au moins 30 jours après l’obsolescence |
|
|
Mettre à jour la fonction de blocage |
Au moins 60 jours après l’obsolescence |
|
Note
Pour certains environnements d’exécution, AWS retarde les dates de création de fonctions de bloc et de mise à jour de fonctions de bloc au-delà des 30 et 60 jours habituels après l’obsolescence. AWS a apporté cette modification en réponse aux commentaires des clients afin de vous donner plus de temps pour améliorer vos fonctionnalités. Reportez-vous aux tableaux figurant dans Environnements d'exécution pris en charge et Environnements d’exécution obsolètes pour connaître les dates relatives à votre environnement d’exécution. Lambda ne commencera pas à bloquer les créations ou les mises à jour de fonctions avant les dates indiquées dans ces tables.
Réception de notifications d'obsolescence lors de l'exécution
Lorsqu'un environnement d'exécution approche de sa date d'obsolescence, Lambda vous envoie une alerte par e-mail si l'une des fonctions de votre Compte AWS utilise cet environnement d'exécution. Les notifications sont également affichées dans AWS Health Dashboard et AWS Trusted Advisor.
-
Réception de notifications par e-mail :
Lambda vous envoie une alerte par e-mail au moins 180 jours avant qu'un environnement d'exécution ne soit obsolète. Cet e-mail répertorie les versions $LATEST de toutes les fonctions utilisant le runtime. Pour consulter la liste complète des versions de fonctions concernées, utilisez Trusted Advisor ou consultez Récupération de données sur les fonctions Lambda qui utilisent un environnement d’exécution obsolète.
Lambda envoie une notification par e-mail au contact principal Compte AWS de votre compte. Pour plus d'informations sur l'affichage ou la mise à jour des adresses e-mail de votre compte, consultez la section Mise à jour des informations de contact dans la Référence générale AWS.
-
Recevoir des notifications via AWS Health Dashboard :
AWS Health Dashboard affiche une notification au moins 180 jours avant qu'un environnement d'exécution ne soit obsolète. Les notifications apparaissent sur la page État de votre compte sous Autres notifications
. L'onglet Ressources affectées de la notification répertorie les versions $LATEST de toutes les fonctions utilisant le runtime. Note
Pour consulter la liste complète des versions de fonctions concernées, utilisez Trusted Advisor ou consultez Récupération de données sur les fonctions Lambda qui utilisent un environnement d’exécution obsolète.
Les notifications AWS Health Dashboard expirent 90 jours après que le runtime concerné soit devenu obsolète.
-
Utilisation de AWS Trusted Advisor
Trusted Advisor affiche une notification au moins 180 jours avant qu’un environnement d’exécution ne soit obsolète. Les notifications apparaissent sur la page Sécurité
. La liste des fonctions concernées s'affiche sous Fonctions AWS Lambda utilisant des environnements d'exécution obsolètes. Cette liste de fonctions affiche à la fois $LATEST et les versions publiées et les mises à jour automatiques pour refléter l'état actuel de vos fonctions. Vous pouvez activer les notifications hebdomadaires par e-mail depuis Trusted Advisor dans la page des préférences
de la console Trusted Advisor.
Environnements d’exécution obsolètes
Les environnements d’exécution suivants ont atteint la fin de prise en charge :
| Nom | Identifiant | Système d’exploitation | Date d’obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage |
|---|---|---|---|---|---|
|
Node.js 18 |
nodejs18.x
|
Amazon Linux 2 |
1e septembre 2025 |
3 février 2026 |
9 mars 2026 |
|
.NET 6 |
dotnet6
|
Amazon Linux 2 |
20 décembre 2024 |
3 février 2026 |
9 mars 2026 |
|
Python 3.8 |
python3.8
|
Amazon Linux 2 |
14 octobre 2024 |
3 février 2026 |
9 mars 2026 |
|
Node.js 16 |
nodejs16.x
|
Amazon Linux 2 |
12 juin 2024 |
3 février 2026 |
9 mars 2026 |
|
.NET 7 (conteneur uniquement) |
dotnet7
|
Amazon Linux 2 |
14 mai 2024 |
N/A |
N/A |
|
Java 8 |
java8
|
Amazon Linux |
8 janvier 2024 |
8 février 2024 |
9 mars 2026 |
|
Go 1.x |
go1.x
|
Amazon Linux |
8 janvier 2024 |
8 février 2024 |
9 mars 2026 |
|
Exécution réservée au système d'exploitation |
provided
|
Amazon Linux |
8 janvier 2024 |
8 février 2024 |
9 mars 2026 |
|
Ruby 2.7 |
ruby2.7
|
Amazon Linux 2 |
7 décembre 2023 |
9 janvier 2024 |
9 mars 2026 |
|
Node.js 14 |
nodejs14.x
|
Amazon Linux 2 |
4 décembre 2023 |
9 janvier 2024 |
9 mars 2026 |
|
Python 3.7 |
python3.7
|
Amazon Linux |
4 décembre 2023 |
9 janvier 2024 |
9 mars 2026 |
|
.NET Core 3.1 |
dotnetcore3.1
|
Amazon Linux 2 |
3 avril 2023 |
3 avril 2023 |
3 mai 2023 |
|
Node.js 12 |
nodejs12.x
|
Amazon Linux 2 |
31 mars 2023 |
31 mars 2023 |
30 avril 2023 |
|
Python 3.6 |
python3.6
|
Amazon Linux |
18 juillet 2022 |
18 juillet 2022 |
29 août 2022 |
|
.NET 5 (conteneur uniquement) |
dotnet5.0
|
Amazon Linux 2 |
10 mai 2022 |
N/A |
N/A |
|
.NET Core 2.1 |
dotnetcore2.1
|
Amazon Linux |
5 janvier 2022 |
5 janvier 2022 |
13 avril 2022 |
|
Node.js 10 |
nodejs10.x
|
Amazon Linux 2 |
30 juillet 2021 |
30 juillet 2021 |
14 février 2022 |
|
Ruby 2.5 |
ruby2.5
|
Amazon Linux |
30 juillet 2021 |
30 juillet 2021 |
31 mars 2022 |
|
Python 2.7 |
python2.7
|
Amazon Linux |
15 juillet 2021 |
15 juillet 2021 |
30 mai 2022 |
|
Node.js 8.10 |
nodejs8.10
|
Amazon Linux |
6 mars 2020 |
4 février 2020 |
6 mars 2020 |
|
Node.js 4.3 |
nodejs4.3
|
Amazon Linux |
5 mars 2020 |
3 février 2020 |
5 mars 2020 |
|
Node.js 4.3 edge |
nodejs4.3-edge
|
Amazon Linux |
5 mars 2020 |
31 mars 2019 |
30 avril 2019 |
|
Node.js 6.10 |
nodejs6.10
|
Amazon Linux |
12 août 2019 |
12 juillet 2019 |
12 août 2019 |
|
.NET Core 1.0 |
dotnetcore1.0
|
Amazon Linux |
27 juin 2019 |
30 juin 2019 |
30 juillet 2019 |
|
.NET Core 2.0 |
dotnetcore2.0
|
Amazon Linux |
30 mai 2019 |
30 avril 2019 |
30 mai 2019 |
|
Node.js 0.10 |
nodejs
|
Amazon Linux |
30 août 2016 |
30 septembre 2016 |
31 octobre 2016 |
Dans la plupart des cas, la date de fin de vie d’une version de langage ou d’un système d’exploitation est bien connue à l’avance. Les liens ci-dessous donnent les calendriers de fin de vie pour chaque langage que Lambda prend en charge en tant qu'environnement d'exécution géré.
Stratégies de prise en charge des langages et des infrastructures
-
Node.js – github.com
-
Python – devguide.python.org
-
Ruby – www.ruby-lang.org
-
Java – www.oracle.com
et Corretto FAQs -
Go – golang.org
-
.NET – dotnet.microsoft.com