Contexto de ejecución de AWS Lambda - AWS Lambda

Contexto de ejecución de AWS Lambda

Cuando AWS Lambda ejecuta una función de Lambda, se encarga de aprovisionar y administrar los recursos necesarios para la función de Lambda. Al crear una función de Lambda, se debe especificar información de configuración, como la cantidad de memoria y el tiempo máximo de ejecución asignados a la función de Lambda. Al invocar una función de Lambda, AWS Lambda lanza un contexto de ejecución basado en las opciones de configuración que proporcione. El contexto de ejecución es un entorno de tiempo de ejecución temporal que inicializa las dependencias externas del código de su función de Lambda, como las conexiones de bases de datos o los puntos de enlace HTTP. Esto permite un mejor rendimiento de las invocaciones posteriores, ya que no es necesario realizar un "arranque en frío" o inicializar estas dependencias externas, como se explica a continuación.

Se necesita tiempo para configurar un contexto de ejecución y realizar el proceso de arranque necesario, lo que añade cierta latencia cada vez que se invoca una función de Lambda. Normalmente, esta latencia aparece cuando se invoca una función de Lambda por primera vez o después de actualizarla, ya que AWS Lambda intenta reutilizar el contexto de ejecución para las invocaciones posteriores de la función de Lambda.

Una vez ejecutada la función de Lambda, AWS Lambda mantiene el contexto de ejecución durante cierto tiempo, anticipándose a otra posible invocación de la función de Lambda. A efectos prácticos, el servicio congela el contexto de ejecución una vez finalizada la función de Lambda y, si AWS Lambda decide reutilizarlo cuando se invoque de nuevo la función de Lambda, lo descongela para su reutilización. Este enfoque de reutilización de contextos de ejecución tiene las siguientes implicaciones:

  • Los objetos declarados fuera del método del controlador de la función permanecen inicializados, lo que proporciona una optimización adicional cuando la función se invoca de nuevo. Por ejemplo, si la función de Lambda establece una conexión con una base de datos, en lugar de volver a establecer la conexión, se utiliza la conexión original en posteriores invocaciones. Le sugerimos que añada lógica al código que compruebe si existe una conexión antes de crear una nueva.

  • Cada contexto de ejecución proporciona 512 MB de espacio en disco adicional en el directorio /tmp. El contenido del directorio se conserva al congelar el contexto de ejecución, proporcionando una caché transitoria que se puede utilizar para varias invocaciones. Puede agregar código adicional para comprobar si la caché dispone de los datos que se almacenaron. Para obtener información acerca de los límites de implementación, consulte Cuotas de AWS Lambda.

  • Los procesos en segundo plano o las devoluciones de llamada iniciadas por la función de Lambda que no se completaron al finalizar la función se reanudan si AWS Lambda decide reutilizar el contexto de ejecución. Asegúrese de que los procesos en segundo plano o las devoluciones de llamada del código se completen antes de que este finalice.

Cuando escriba el código de la función de Lambda no presuponga que AWS Lambda reutiliza automáticamente el contexto de ejecución para las siguientes invocaciones de la función. Otros factores pueden dictar la necesidad de que AWS Lambda cree un nuevo contexto de ejecución, lo que puede producir resultados inesperados, como errores de conexión a la base de datos.