Environnements d’exécution (runtimes) Lambda - AWS Lambda

Environnements d’exécution (runtimes) Lambda

Lambda prend en charge plusieurs langages via l’utilisation d’environnements d’exécution. Pour une fonction définie en tant qu'image de conteneur, vous choisissez un environnement d'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.

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 python3.9 ou nodejs18.x. Pour modifier une fonction afin d'utiliser une nouvelle version majeure du langage, vous devez modifier l'identifiant de l'environnement 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.

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.

Amazon Linux 2
  • Image – Personnalisée

  • Noyau Linux version 4.14

Amazon Linux

Lambda appelle 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’un appel antérieur 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, vous pouvez implémenter un environnement d’exécution (runtime) personnalisé. L’environnement d’exécution de Lambda fournit une interface d’environnement d’exécution pour obtenir des événements d’appels et envoyer des réponses. Vous pouvez déployer un environnement d'exécution personnalisé en association avec le code de votre fonction, ou dans une couche.

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.

Environnements d'exécution pris en charge
Nom Identifiant Kit SDK Système d’exploitation Architectures Obsolescence (Phase 1)

Node.js 18

nodejs18.x

3.188.0

Amazon Linux 2

x86_64, arm64

Node.js 16

nodejs16.x

2.1083.0

Amazon Linux 2

x86_64, arm64

Node.js 14

nodejs14.x

2.1055.0

Amazon Linux 2

x86_64, arm64

Node.js 12

nodejs12.x

2.1055.0

Amazon Linux 2

x86_64, arm64

31 mars 2023

Python 3.9

python3.9

boto3-1.20.32 botocore-1.23.32

Amazon Linux 2

x86_64, arm64

Python 3.8

python3.8

boto3-1.20.32 botocore-1.23.32

Amazon Linux 2

x86_64, arm64

Python 3.7

python3.7

boto3-1.20.32 botocore-1.23.32

Amazon Linux

x86_64

Java 11

java11

Amazon Linux 2

x86_64, arm64

Java 8

java8.al2

Amazon Linux 2

x86_64, arm64

Java 8

java8

Amazon Linux

x86_64

.NET Core 3.1

dotnetcore3.1

Amazon Linux 2

x86_64, arm64

3 avril 2023

.NET 6

dotnet6

Amazon Linux 2

x86_64, arm64

.NET 5

dotnet5.0

Amazon Linux 2

x86_64

Go 1.x

go1.x

Amazon Linux

x86_64

Ruby 2.7

ruby2.7

3.1.0

Amazon Linux 2

x86_64, arm64

Environnement d’exécution personnalisé

provided.al2

Amazon Linux 2

x86_64, arm64

Environnement d’exécution personnalisé

provided

Amazon Linux

x86_64

Lambda tient à jour les environnements d'exécution gérés grâce à des correctifs et à la prise en charge des versions mineures. Pour plus d'informations, consultez Mises à jour de l'environnement d'exécution Lambda.

politique d’obsolescence de l’exécution

Environnements d’exécution (runtimes) 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é. Lorsque les mises à jour de sécurité ne sont plus disponibles pour un composant d’exécution, Lambda rend l’exécution obsolète.

L’obsolescence (fin de prise en charge) d’un environnement d’exécution se produit en deux phases.

Phase 1 : Lambda n’applique plus de correctifs de sécurité ou d’autres mises à jour à l’exécution. Vous ne pouvez plus créer des fonctions qui utilisent l’exécution, mais vous pouvez continuer à mettre à jour les fonctions existantes. Cela inclut la mise à jour de l'environnement d'exécution et la restauration vers l'environnement d'exécution précédent. Notez que les fonctions qui utilisent un environnement d'exécution obsolète ne sont plus éligibles au support technique.

Phase 2 : vous ne pouvez plus créer ou mettre à jour les fonctions qui utilisent l’exécution. Pour mettre à jour une fonction, vous devez la migrer vers un environnement d'exécution pris en charge. Après la migration de la fonction vers un environnement d'exécution prise en charge, vous ne pouvez pas restaurer la fonction vers l'environnement d'exécution précédent. La phase 2 démarre au moins 30 jours après le début de la phase 1.

Lambda ne bloque pas les appels des fonctions qui utilisent un environnement d'exécution obsolète. Les appels de fonction se poursuivent indéfiniment après la fin de prise en charge de l'environnement d'exécution. Toutefois, AWS vous recommande vivement de migrer les fonctions vers un environnement d'exécution pris en charge afin que vous puissiez continuer de recevoir des correctifs de sécurité et rester éligible à la prise en charge technique.

Dans le tableau ci-dessous, chaque phase démarre à minuit (fuseau horaire du Pacifique) à la date spécifiée. Les environnements d'exécution suivants ont atteint la fin de prise en charge :

Environnements d'exécution obsolètes
Nom Identifiant Système d’exploitation Phase 1 de l’obsolescence Phase 2 de l'obsolescence

Python 3.6

python3.6

Amazon Linux

18 juillet 2022

29 août 2022

Python 2.7

python2.7

Amazon Linux

15 juillet 2021

30 mai 2022

.NET Core 2.1

dotnetcore2.1

Amazon Linux

5 janvier 2022

13 avril 2022

Ruby 2.5

ruby2.5

Amazon Linux

30 juillet 2021

31 mars 2022

Node.js 10

nodejs10.x

Amazon Linux 2

30 juillet 2021

14 février 2022

Node.js 8.10

nodejs8.10

Amazon Linux

6 mars 2020

Node.js 4.3

nodejs4.3

Amazon Linux

5 mars 2020

Node.js 6.10

nodejs6.10

Amazon Linux

12 août 2019

.NET Core 1.0

dotnetcore1.0

Amazon Linux

30 juillet 2019

.NET Core 2.0

dotnetcore2.0

Amazon Linux

30 mai 2019

Node.js 4.3 edge

nodejs4.3-edge

Amazon Linux

30 avril 2019

Node.js 0.10

nodejs

Amazon Linux

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é. En outre, Trusted Advisor inclut une vérification qui fournit un préavis de 120 jours sur la fin prochaine de la prise en charge des environnements d'exécution Lambda et Lambda vous informe par e-mail si vous avez des fonctions utilisant un environnement d'exécution dont la fin de la prise en charge est prévue dans les 60 prochains jours.

Stratégies de prise en charge des langages et des infrastructures

Rubriques