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.
Runtimes des instances gérées Lambda
Lambda traite les demandes différemment lorsqu'il utilise des instances gérées par Lambda. Au lieu de traiter les demandes de manière séquentielle dans chaque environnement d'exécution, les instances gérées Lambda traitent plusieurs demandes simultanément dans chaque environnement d'exécution. Ce changement de modèle d'exécution signifie que les fonctions utilisant des instances gérées par Lambda doivent tenir compte de la sécurité des threads, de la gestion des états et de l'isolation du contexte, des problèmes qui ne se posent pas dans le modèle de simultanéité unique Lambda (par défaut). En outre, la mise en œuvre de la multisimultanéité varie selon les environnements d'exécution.
Langues prises en charge
Les instances gérées Lambda peuvent être utilisées avec les langages de programmation et les environnements d'exécution suivants :
-
Java : Java 21 et versions ultérieures.
-
Python : Python 3.13 et versions ultérieures.
-
Node.js : Node.js 22 et versions ultérieures.
-
.NET : .NET 8 et versions ultérieures.
-
Rust : compatible avec l'environnement d'exécution uniquement pour le système d'exploitation
provided.al2023et les versions ultérieures.
Considérations spécifiques à la langue
Chaque langage de programmation implémente la multiconcurrence différemment. Vous devez comprendre comment la multiconcurrence est implémentée dans le langage de programmation que vous avez choisi pour appliquer les meilleures pratiques de simultanéité appropriées.
Java
Utilise un processus unique avec des threads du système d'exploitation pour la simultanéité. Plusieurs threads exécutent simultanément la méthode du gestionnaire, ce qui nécessite une gestion sécurisée de l'état et des ressources partagées.
Python
Utilise plusieurs processus Python dans lesquels chaque demande simultanée est exécutée dans le cadre d'un processus distinct. Cela protège contre la plupart des problèmes de simultanéité, bien qu'il soit nécessaire de faire attention aux ressources partagées telles que le /tmp répertoire.
Node.js
Utilise des threads
.NET
Utilise les tâches .NET avec le traitement asynchrone de plusieurs demandes simultanées. Nécessite une gestion sûre des ressources publiques et partagées.
Rust
Utilise un processus unique avec des tâches asynchrones optimisées par TokioClone +Send.
Étapes suivantes
Pour obtenir des informations détaillées sur chaque environnement d'exécution, consultez les rubriques suivantes :