Tiempos de ejecución de instancias administradas de Lambda
Lambda procesa las solicitudes de forma diferente cuando se utilizan instancias administradas de Lambda. En lugar de gestionar las solicitudes en cada entorno de ejecución de forma secuencial, las instancias administradas de Lambda procesan varias solicitudes de forma simultánea en cada entorno de ejecución. Este cambio en el modelo de ejecución significa que las funciones que utilizan instancias administradas de Lambda deben tener en cuenta la seguridad de los subprocesos, la administración del estado y el aislamiento del contexto, problemas que no surgen en el modelo de concurrencia única de Lambda (predeterminado). Además, la implementación de concurrencia múltiple varía según los tiempos de ejecución.
Lenguajes admitidos
Las instancias administradas de Lambda se pueden usar con los siguientes lenguajes de programación y tiempos de ejecución:
-
Java: Java 21 y versiones posteriores.
-
Python: Python 3.13 y versiones posteriores.
-
Node.js: Node.js 22 y versiones posteriores.
-
.NET: .NET 8 y versiones posteriores.
-
Rust: compatible con el tiempo de ejecución solo del sistema operativo
provided.al2023y versiones posteriores.
Consideraciones específicas del lenguaje
Cada lenguaje de programación implementa la concurrencia múltiple de forma diferente. Debe comprender cómo se implementa la concurrencia múltiple en el lenguaje de programación que elija para aplicar las mejores prácticas de concurrencia adecuadas.
Java
Utiliza un único proceso con subprocesos del sistema operativo para la concurrencia. Varios subprocesos ejecutan el método del controlador simultáneamente, lo que requiere una gestión segura de los recursos compartidos.
Python
Utiliza varios procesos de Python en los que cada solicitud simultánea se ejecuta en un proceso independiente. Esto protege contra la mayoría de los problemas de concurrencia, aunque hay que ejercer precaución con los recursos compartidos, como el directorio /tmp.
Node.js
Utiliza subprocesos de trabajo
.NET
Utiliza tareas de .NET con procesamiento asíncrono de varias solicitudes simultáneas. Requiere una gestión segura de los recursos compartidos y del estado.
Rust
Utiliza un único proceso con tareas asíncronas impulsadas por TokioClone + Send.
Siguientes pasos
Para obtener información detallada sobre cada tiempo de ejecución, consulte los siguientes temas:
-
Tiempo de ejecución de Java para instancias administradas de Lambda
-
Tiempo de ejecución de Node.js para instancias administradas de Lambda
-
Tiempo de ejecución de Python para instancias administradas de Lambda
-
Tiempo de ejecución de .NET para instancias administradas de Lambda
-
Compatibilidad de Rust con instancias administradas de Lambda