Ejecución de código con Lambda
Cuando escribe una función de Lambda, está creando código que se ejecutará en un entorno sin servidor único. Comprender cómo Lambda ejecuta realmente el código implica dos aspectos clave: el modelo de programación que define la forma en que el código interactúa con Lambda, y el ciclo de vida del entorno de ejecución que determina cómo Lambda gestiona el entorno del tiempo de ejecución del código.
El modelo de programación de Lambda
Modelo de programación funciona como un conjunto común de reglas sobre cómo Lambda trabaja con su código, independientemente de si está escribiendo en Python, Java o cualquier otro lenguaje compatible. El modelo de programación incluye el tiempo de ejecución y el controlador.
-
Lambda recibe un evento.
-
Lambda usa el tiempo de ejecución (como Python o Java) para preparar el evento en un formato que pueda usar el código.
-
El tiempo de ejecución envía el evento formateado a su controlador.
-
Su controlador procesa el evento mediante el código que ha escrito en su función de Lambda.
Un elemento esencial de este modelo es el controlador, donde Lambda envía los eventos para que los procese su código. Considérelo como el punto de entrada a su código. Cuando Lambda recibe un evento, pasa este evento y parte de la información de contexto a su controlador. A continuación, el controlador ejecuta su código para procesar estos eventos; por ejemplo, puede leer un archivo cuando se carga en Amazon S3, analizar una imagen o actualizar una base de datos. Una vez que su código termina de procesar un evento, el controlador está listo para procesar el siguiente.
El modelo de ejecución de Lambda
Mientras que el modelo de programación define cómo Lambda interactúa con su código, Entorno de ejecución es donde Lambda realmente ejecuta su función: es un espacio informático seguro y aislado creado específicamente para su función. Cada entorno sigue un ciclo de vida de tres fases.
-
Inicialización: Lambda crea el entorno y prepara todo para ejecutar su función. Esto incluye configurar el tiempo de ejecución elegido, cargar su código y ejecutar cualquier código de startup que haya escrito.
-
Invocación: cuando llegan los eventos, Lambda utiliza este entorno para ejecutar su función. El entorno puede procesar muchos eventos a lo largo del tiempo, uno tras otro. A medida que llegan más eventos, Lambda crea entornos adicionales para gestionar el aumento de la demanda. Cuando la demanda disminuye, Lambda detiene los entornos que ya no son necesarios.
-
Cierre: finalmente, Lambda apagará los entornos. Antes de hacerlo, le da a su función la oportunidad de limpiar cualquier tarea restante.
Este entorno gestiona aspectos importantes de la ejecución de su función. Proporciona memoria a la función y un directorio /tmp
para el almacenamiento temporal. Mantiene los recursos, como las conexiones de bases de datos entre las invocaciones, para que la función pueda reutilizarlos. Ofrece características como la simultaneidad aprovisionada, en la que Lambda prepara los entornos con antelación para mejorar el rendimiento.