

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
<a name="lambda-managed-instances-runtimes"></a>

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
<a name="lambda-managed-instances-supported-runtimes"></a>

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.al2023` et les versions ultérieures.

## Considérations spécifiques à la langue
<a name="lambda-managed-instances-runtime-considerations"></a>

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](https://nodejs.org/api/worker_threads.html) de travail avec une exécution asynchrone. Les demandes simultanées sont réparties entre les threads de travail, et chaque thread de travail peut également traiter les demandes simultanées de manière asynchrone, ce qui nécessite une gestion sûre de l'état et des ressources partagées.

**.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 [Tokio](https://tokio.rs/). Le gestionnaire doit être `Clone` \+`Send`.

## Étapes suivantes
<a name="lambda-managed-instances-runtime-next-steps"></a>

Pour obtenir des informations détaillées sur chaque environnement d'exécution, consultez les rubriques suivantes :
+ [Runtime Java pour les instances gérées Lambda](lambda-managed-instances-java-runtime.md)
+ [Runtime Node.js pour les instances gérées Lambda](lambda-managed-instances-nodejs-runtime.md)
+ [Runtime Python pour les instances gérées Lambda](lambda-managed-instances-python-runtime.md)
+ [Environnement d'exécution .NET pour les instances gérées Lambda](lambda-managed-instances-dotnet-runtime.md)
+ [Support Rust pour les instances gérées Lambda](lambda-managed-instances-rust.md)