Tiempos de ejecución de Lambda - AWS Lambda

Tiempos de ejecución de Lambda

Lambda admite múltiples idiomas a través del uso de tiempos de ejecución. Un tiempo de ejecución proporciona un entorno específico del lenguaje que transmite eventos de invocación, información de contexto y respuestas entre Lambda y la función. Puede usar tiempos de ejecución que Lambda proporcione, o crear los suyos propios.

Cada versión principal del lenguaje de programación tiene un tiempo de ejecución independiente, con un identificador de tiempo de ejecución único, como nodejs20.x o python3.12. Para configurar una función a fin de que utilice una nueva versión principal del lenguaje, debe cambiar el identificador del tiempo de ejecución. Como AWS Lambda no puede garantizar la compatibilidad con versiones anteriores entre las versiones principales, esta es una operación que depende del cliente.

Para una función definida como una imagen de contenedor, se elige un tiempo de ejecución y la distribución de Linux al crear la imagen contenedor. Para cambiar el tiempo de ejecución, cree una nueva imagen contenedor.

Cuando se utiliza un archivo de archivo .zip para el paquete de implementación, se elige un tiempo de ejecución al crear la función. Para cambiar el tiempo de ejecución, puede actualizar la configuración de su función. El tiempo de ejecución está emparejado con una de las distribuciones de Amazon Linux. El entorno de ejecución subyacente ofrece variables de entorno y bibliotecas adicionales a las que puede acceder desde el código de función.

Lambda invoca la función en un entorno de ejecución. El entorno de ejecución proporciona un entorno en tiempo de ejecución seguro y aislado que administra los recursos necesarios para ejecutar la función. Lambda reutiliza el entorno de ejecución de una invocación previa, si la hay, o puede crear un nuevo entorno de ejecución.

Para usar otros lenguajes en Lambda, como Go o Rust, utilice un tiempo de ejecución exclusivo del sistema operativo. El entorno de ejecución de Lambda proporciona una interfaz de tiempo de ejecución para obtener eventos de invocación y enviar respuestas. Puede implementar otros lenguajes mediante un tiempo de ejecución personalizado junto con su código de función, o en una capa.

Tiempos de ejecución admitidos

En la siguiente tabla se enumeran los tiempos de ejecución de Lambda admitidos y las fechas de caducidad proyectadas. Incluso cuando un tiempo de ejecución está obsoleto, puede seguir creando y actualizando funciones durante un período limitado. Para obtener más información, consulte Uso del tiempo de ejecución después de la obsolescencia. En la tabla se muestran las fechas previstas actualmente para la caducidad del tiempo de ejecución. Estas fechas se proporcionan para fines de planificación y están sujetas a cambios.

Tiempos de ejecución admitidos
Nombre Identificador Sistema operativo Fecha de baja Bloqueo de la función Crear Bloqueo de la función Actualizar

Node.js 20

nodejs20.x

Amazon Linux 2023

Node.js 18

nodejs18.x

Amazon Linux 2

Node.js 16

nodejs16.x

Amazon Linux 2

12 de junio de 2024

28 de febrero de 2025

31 de marzo de 2025

Python 3.12

python3.12

Amazon Linux 2023

Python 3.11

python3.11

Amazon Linux 2

Python 3.10

python3.10

Amazon Linux 2

Python 3.9

python3.9

Amazon Linux 2

Python 3.8

python3.8

Amazon Linux 2

14 de octubre de 2024

28 de febrero de 2025

31 de marzo de 2025

Java 21

java21

Amazon Linux 2023

Java 17

java17

Amazon Linux 2

Java 11

java11

Amazon Linux 2

Java 8

java8.al2

Amazon Linux 2

.NET 8

dotnet8

Amazon Linux 2023

.NET 7 (solo contenedor)

dotnet7

Amazon Linux 2

14 de mayo de 2024

.NET 6

dotnet6

Amazon Linux 2

12 de noviembre de 2024

28 de febrero de 2025

31 de marzo de 2025

Ruby 3.3

ruby3.3

Amazon Linux 2023

Ruby 3.2

ruby3.2

Amazon Linux 2

Tiempo de ejecución exclusivo del sistema operativo

provided.al2023

Amazon Linux 2023

Tiempo de ejecución exclusivo del sistema operativo

provided.al2

Amazon Linux 2

nota

Para las nuevas regiones, Lambda no admitirá tiempos de ejecución que queden obsoletos dentro de los seis meses posteriores.

Lambda mantiene los tiempos de ejecución administrados y sus imágenes de base de contenedor correspondientes actualizados con parches y la compatibilidad con lanzamientos de versiones menores. Para obtener más información, consulte Actualizaciones de tiempo de ejecución de Lambda.

Lambda sigue siendo compatible con el lenguaje de programación Go tras la caducidad del tiempo de ejecución de Go 1.x. Para obtener más información, consulte Migración de las funciones de AWS Lambda del tiempo de ejecución de Go1.x al tiempo de ejecución personalizado en Amazon Linux 2 en el Blog de informática de AWS.

Todos los tiempos de ejecución compatibles de Lambda admiten tanto arquitecturas x86_64 como arm64.

Nuevas versiones de tiempo de ejecución

Para las nuevas versiones de los lenguajes, Lambda solo proporciona tiempos de ejecución administrados cuando la versión llega a la fase de soporte a largo plazo (LTS) del ciclo de lanzamiento del lenguaje. Por ejemplo, para el ciclo de lanzamiento de Node.js, cuando la versión llega a la fase de LTS activa.

Antes de que la versión alcance la fase de soporte a largo plazo, permanece en desarrollo y puede estar sujeta a cambios importantes. Lambda aplica las actualizaciones del tiempo de ejecución automáticamente de forma predeterminada, por lo que interrumpir los cambios en una versión del tiempo de ejecución podría alterar el funcionamiento esperado de las funciones.

Lambda no proporciona tiempos de ejecución administrados para las versiones de lenguajes que no tendrán una versión de LTS.

La siguiente lista muestra el mes de lanzamiento previsto para los próximos tiempos de ejecución de Lambda. Estas fechas son solo indicativas y están sujetas a cambios.

  • Python 3.13: noviembre de 2024

  • Node.js 22: noviembre de 2024

Política de obsolescencia del tiempo de ejecución

Tiempos de ejecución de Lambda para archivos .zip se crean en torno a una combinación de bibliotecas de sistemas operativos, lenguaje de programación y software que están sujetos a actualizaciones de mantenimiento y seguridad. La política de obsolescencia estándar de Lambda consiste en dejar obsoleto un tiempo de ejecución cuando algún componente importante de este llegue al final del soporte comunitario a largo plazo (LTS) y las actualizaciones de seguridad ya no estén disponibles. Por lo general, este es el tiempo de ejecución del lenguaje, aunque en algunos casos, un tiempo de ejecución puede quedar obsoleto porque el sistema operativo (SO) llega al final del LTS.

Cuando un tiempo de ejecución queda obsoleto, AWS puede dejar de aplicar revisiones de seguridad o actualizaciones a ese tiempo de ejecución y las funciones que utilizan ese tiempo de ejecución dejan de ser aptas para recibir asistencia técnica. Estos tiempos de ejecución obsoletos se proporcionan “tal cual”, sin garantía alguna, y pueden contener errores, defectos u otras vulnerabilidades.

Para obtener más información sobre la administración de las actualizaciones y la caducidad del tiempo de ejecución, consulte las próximas secciones y el artículo Administración de las actualizaciones de los tiempos de ejecución de AWS Lambda en el Blog de informática de AWS.

importante

A veces Lambda retrasa la obsolescencia de un tiempo de ejecución de Lambda durante un periodo limitado luego de la fecha de finalización del soporte de la versión del lenguaje compatible con el tiempo de ejecución. Durante este periodo, Lambda solo aplica parches de seguridad al sistema operativo del tiempo de ejecución. Lambda no aplica parches de seguridad a los tiempos de ejecución de los lenguajes de programación una vez que llegan a la fecha de finalización del soporte.

Obsolescencia del tiempo de ejecución para Node.js 16

En respuesta a los comentarios de los clientes, AWS está retrasando la obsolescencia del tiempo de ejecución de Node.js 16 hasta 9 meses después del final del LTS comunitario. El tiempo de ejecución de Node.js 16 quedará obsoleto en la fecha indicada en la tabla de tiempos de ejecución admitidos. Como se indica en la nota anterior, entre el final del LTS, el 11 de septiembre de 2023, y la fecha de caducidad, Lambda solo aplicará parches del sistema operativo al tiempo de ejecución. Durante este periodo, no se aplicará ningún parche de seguridad para el tiempo de ejecución del idioma.

Retrasar la obsolescencia de Node.js 16, ofrece a los clientes que utilizan este tiempo de ejecución la oportunidad de migrar sus funciones directamente a Node.js 20, omitiendo Node.js 18.

Modelo de responsabilidad compartida

Lambda es responsable de seleccionar y publicar las actualizaciones de seguridad para todos los tiempos de ejecución administrados y las imágenes base de contenedores compatibles. De forma predeterminada, Lambda aplicará estas actualizaciones a las funciones de forma automática mediante tiempos de ejecución administrados. Si se ha modificado la configuración predeterminada de actualización automática del tiempo de ejecución, consulte el modelo de responsabilidad compartida de los controles de administración del tiempo de ejecución. En el caso de las funciones implementadas mediante imágenes de contenedor, es responsable de volver a crear la imagen del contenedor de la función a partir de la imagen base más reciente y volver a implementar la imagen del contenedor.

Cuando un tiempo de ejecución queda obsoleto, Lambda deja de ser responsable de actualizar el tiempo de ejecución administrado y las imágenes base del contenedor. Es responsable de actualizar sus funciones para utilizar un tiempo de ejecución o una imagen base compatibles.

En todos los casos, es responsable de aplicar las actualizaciones al código de la función, incluidas las de sus dependencias. Sus responsabilidades en virtud del modelo de responsabilidad compartida se resumen en la siguiente tabla.

Fase del ciclo de vida del tiempo de ejecución Responsabilidades de Lambda Sus responsabilidades
Tiempo de ejecución administrado compatible

Proporcionar actualizaciones periódicas del tiempo de ejecución con revisiones de seguridad y otras actualizaciones.

Aplicar las actualizaciones del tiempo de ejecución automáticamente de forma predeterminada (consulte los comportamientos no predeterminados en Controles de administración del tiempo de ejecución).

Actualizar el código de la función, incluidas las dependencias, para corregir cualquier vulnerabilidad de seguridad.
Imagen de contenedor compatible Proporcionar actualizaciones periódicas en la imagen base del contenedor con revisiones de seguridad y otras actualizaciones.

Actualizar el código de la función, incluidas las dependencias, para corregir cualquier vulnerabilidad de seguridad.

Volver a compilar e implementar la imagen del contenedor con regularidad utilizando la imagen base más reciente.

El tiempo de ejecución administrado está a punto de quedar obsoleto

Notificar a los clientes antes de que el tiempo de ejecución quede obsoleto mediante la documentación, AWS Health Dashboard, el correo electrónico y Trusted Advisor.

La responsabilidad de las actualizaciones del tiempo de ejecución finaliza cuando queda obsoleto.

Supervisar la documentación de Lambda, AWS Health Dashboard, el correo electrónico o Trusted Advisor para consultar la información sobre la obsolescencia del tiempo de ejecución.

Actualizar las funciones a un tiempo de ejecución compatible antes de que el tiempo de ejecución anterior quede obsoleto.

La imagen del contenedor está a punto de quedar obsoleta

Las notificaciones de obsolescencia no están disponibles para las funciones que utilizan imágenes de contenedores.

La responsabilidad de las actualizaciones de la imagen base del contenedor finaliza cuando queda obsoleta.

Tenga en cuenta los programas de obsolescencia y actualice las funciones a una imagen base compatible antes de que la imagen anterior quede obsoleta.

Uso del tiempo de ejecución después de la obsolescencia

Cuando un tiempo de ejecución queda obsoleto, AWS puede dejar de aplicar revisiones de seguridad o actualizaciones a ese tiempo de ejecución y las funciones que utilizan ese tiempo de ejecución dejan de ser aptas para recibir asistencia técnica. Estos tiempos de ejecución obsoletos se proporcionan “tal cual”, sin garantía alguna, y pueden contener errores, defectos u otras vulnerabilidades. Las funciones que utilizan un tiempo de ejecución obsoleto también pueden tener un rendimiento inferior u otros problemas, como la caducidad del certificado, lo que puede provocar que no funcionen de forma correcta.

Podrá seguir creando nuevas funciones de Lambda con un tiempo de ejecución durante al menos 30 días luego de que ese tiempo de ejecución caduque. A partir de los 30 días posteriores a la caducidad, Lambda comienza a bloquear la creación de funciones nuevas.

Podrá seguir actualizando el código y la configuración de las funciones existentes durante al menos 60 días desde la obsolescencia de ese tiempo de ejecución. A partir de los 60 días posteriores a la obsolescencia, Lambda comenzará a bloquear la actualización del código y la configuración de las funciones existentes.

nota

Para algunos tiempos de ejecución, AWS está retrasando las fechas de creación de la función de bloqueo y actualización de la función de bloqueo a más de los 30 y 60 días habituales posteriores a la obsolescencia. AWS ha realizado este cambio en respuesta a los comentarios de los clientes para que se disponga de más tiempo para actualizar sus funciones. Consulte las tablas en Tiempos de ejecución admitidos y Tiempos de ejecución obsoletos para poder ver las fechas de su tiempo de ejecución.

Puede actualizar una función para usar una versión más reciente del tiempo de ejecución compatible de forma indefinida luego de que un tiempo de ejecución quede obsoleto. Debe comprobar que la función funcione con el nuevo tiempo de ejecución antes de aplicar el cambio de tiempo de ejecución en los entornos de producción, ya que no podrá volver al tiempo de ejecución obsoleto una vez transcurrido el periodo de 60 días. Se recomienda utilizar versiones y alias de las funciones para permitir una implementación segura con reversión.

Tenga en cuenta que el tiempo exacto durante el que puede seguir creando y actualizando funciones no es fijo. Este período puede variar en función de la caducidad y de cada Regiones de AWS. Las fechas nominales para el bloqueo de la creación y actualización de funciones se indican en la tabla de tiempos de ejecución compatibles que se encuentra la primera sección de esta página. Lambda no comenzará a bloquear la creación o actualización de funciones antes de las fechas que se indican en esta tabla.

Puede seguir invocando sus funciones indefinidamente una vez que el tiempo de ejecución caduque. Sin embargo, AWS recomienda enfáticamente migrar las funciones a un tiempo de ejecución compatible para que continúe recibiendo parches de seguridad y siga siendo elegible para soporte técnico.

Recepción de notificaciones de caducidad de un tiempo de ejecución

Cuando un tiempo de ejecución se acerca a su fecha de caducidad, Lambda le envía una alerta por correo electrónico si alguna de las funciones de su Cuenta de AWS utiliza ese tiempo de ejecución. Las notificaciones también se muestran en AWS Health Dashboard y en AWS Trusted Advisor.

  • Recepción de notificaciones por correo electrónico:

    Lambda le envía una alerta por correo electrónico al menos 180 días antes de que el tiempo de ejecución caduque. En este correo electrónico se enumeran las versiones $LATEST de todas las funciones que utilizan el tiempo de ejecución. Para ver una lista completa de las versiones de funciones afectadas, utilice Trusted Advisor o consulte Enumeración de las funciones que utilizan un tiempo de ejecución obsoleto.

    Lambda envía una notificación por correo electrónico al contacto de su cuenta principal de Cuenta de AWS. Para obtener información sobre cómo ver o actualizar las direcciones de correo electrónico de su cuenta, consulte Actualización de la información de contacto en la Referencia general de AWS.

  • Recepción de notificaciones a través del AWS Health Dashboard:

    El AWS Health Dashboard muestra una notificación al menos 180 días antes de que el tiempo de ejecución caduque. Las notificaciones aparecen en la página de Estado de cuenta, en Otras notificaciones. En la pestaña Recursos afectados de la notificación se enumeran las versiones $LATEST de todas las funciones que utilizan el tiempo de ejecución.

    nota

    Para ver una lista completa de las versiones de funciones afectadas, utilice Trusted Advisor o consulte Enumeración de las funciones que utilizan un tiempo de ejecución obsoleto.

    Las notificaciones de AWS Health Dashboard caducan 90 días luego de que el tiempo de ejecución afectado caduque.

  • Uso de AWS Trusted Advisor

    Trusted Advisor muestra una notificación al menos 180 días antes de que el tiempo de ejecución caduque. Las notificaciones aparecen en la página Seguridad. En Funciones de AWS Lambda que utilizan tiempos de ejecución obsoletos se muestra una lista las funciones afectadas. Esta lista de funciones muestra tanto las versiones $LATEST como las publicadas y se actualiza automáticamente para reflejar el estado actual de las funciones.

    Puede activar las notificaciones semanales por correo electrónico desde Trusted Advisor, en la página Preferencias de la consola de Trusted Advisor.

Enumeración de las funciones que utilizan un tiempo de ejecución obsoleto

Además de utilizar el Trusted Advisor para ver una lista activa de las funciones afectadas por la caducidad programada del tiempo de ejecución, también puede usar el AWS Command Line Interface (AWS CLI) para enumerar todas las versiones de las funciones que utilizan un tiempo de ejecución determinado. Para generar esta lista, ejecute el siguiente comando: Reemplace RUNTIME_IDENTIFIER por el nombre del tiempo de ejecución que está por caducar y elija su propio Región de AWS. Para mostrar solo las versiones de la función $LATEST, omita --function-version ALL en el comando.

aws lambda list-functions --function-version ALL --region us-east-1 --output text --query "Functions[?Runtime=='RUNTIME_IDENTIFIER'].FunctionArn"
sugerencia

El comando de ejemplo muestra las funciones de la región us-east-1 para un determinado Cuenta de AWS. Deberá repetir este comando para cada región en la que su cuenta tenga funciones y para cada uno de sus Cuentas de AWS.

También puede utilizar la característica Consultas avanzadas del AWS Config para enumerar todas las funciones que utilizan un tiempo de ejecución afectado. Esta consulta solo devuelve las versiones $LATEST de la función, pero puede agregar consultas para enumerar funciones en todas las regiones y en varios Cuentas de AWS con un solo comando. Para obtener más información, lea Consulta sobre el estado de la configuración actual de los recursos del AWS Auto Scaling en la Guía del AWS Config para desarrolladores.

Tiempos de ejecución obsoletos

Los siguientes tiempos de ejecución han quedado obsoletos:

Tiempos de ejecución obsoletos
Nombre Identificador Sistema operativo Fecha de baja Bloqueo de la función Crear Bloqueo de la función Actualizar

Java 8

java8

Amazon Linux

8 de enero de 2024

8 de febrero de 2024

28 de febrero de 2025

Go 1.x

go1.x

Amazon Linux

8 de enero de 2024

8 de febrero de 2024

28 de febrero de 2025

Tiempo de ejecución exclusivo del sistema operativo

provided

Amazon Linux

8 de enero de 2024

8 de febrero de 2024

28 de febrero de 2025

Ruby 2.7

ruby2.7

Amazon Linux 2

7 de diciembre de 2023

9 de enero de 2024

28 de febrero de 2025

Node.js 14

nodejs14.x

Amazon Linux 2

4 de diciembre de 2023

9 de enero de 2024

28 de febrero de 2025

Python 3.7

python3.7

Amazon Linux

4 de diciembre de 2023

9 de enero de 2024

28 de febrero de 2025

.NET Core 3.1

dotnetcore3.1

Amazon Linux 2

3 de abril de 2023

3 de abril de 2023

3 de mayo de 2023

Node.js 12

nodejs12.x

Amazon Linux 2

31 de marzo de 2023

31 de marzo de 2023

30 de abril de 2023

Python 3.6

python3.6

Amazon Linux

18 de julio de 2022

18 de julio de 2022

29 de agosto de 2022

.NET 5 (solo contenedor)

dotnet5.0

Amazon Linux 2

10 de mayo de 2022

.NET Core 2.1

dotnetcore2.1

Amazon Linux

5 de enero de 2022

5 de enero de 2022

13 de abril de 2022

Node.js 10

nodejs10.x

Amazon Linux 2

30 de julio de 2021

30 de julio de 2021

14 de febrero de 2022

Ruby 2.5

ruby2.5

Amazon Linux

30 de julio de 2021

30 de julio de 2021

31 de marzo de 2022

Python 2.7

python2.7

Amazon Linux

15 de julio de 2021

15 de julio de 2021

30 de mayo de 2022

Node.js 8.10

nodejs8.10

Amazon Linux

6 de marzo de 2020

6 de marzo de 2020

Node.js 4.3

nodejs4.3

Amazon Linux

5 de marzo de 2020

5 de marzo de 2020

Node.js 4.3 edge

nodejs4.3-edge

Amazon Linux

5 de marzo de 2020

30 de abril de 2019

Node.js 6.10

nodejs6.10

Amazon Linux

12 de agosto de 2019

12 de agosto de 2019

.NET Core 1.0

dotnetcore1.0

Amazon Linux

27 de junio de 2019

30 de julio de 2019

.NET Core 2.0

dotnetcore2.0

Amazon Linux

30 de mayo de 2019

30 de mayo de 2019

Node.js 0.10

nodejs

Amazon Linux

31 de octubre de 2016

En casi todos los casos, la fecha de fin de vida útil de una versión de un lenguaje o un sistema operativo se conoce con mucha antelación. Los enlaces que aparecen a continuación indican los cronogramas de fin de vida útil de cada lenguaje que Lambda admite como tiempo de ejecución administrado.

Políticas de soporte de lenguajes y marcos