Conceptos de Lambda - AWS Lambda

Conceptos de Lambda

Lambda ejecuta instancias de la función para procesar eventos. Puede invocar su función directamente mediante la API de Lambda o puede configurar un servicio o recurso de AWS para invocarla.

Función

Una función es un recurso que puede invocar para ejecutar el código en Lambda. Una función tiene código para procesar los eventos que pasa a la función o que otros AWS servicios envían a la función.

Desencadenador

Un desencadenador es un recurso o configuración que invoca una función de Lambda. Los desencadenadores incluyen los servicios de AWS que puede configurar para invocar una función y mapeos de fuentes de eventos. Un mapeo de fuente de eventos es un recurso de Lambda que lee elementos de un flujo o una cola e invoca una función. Para obtener más información, consulte Comprender los métodos de invocación de la función de Lambda y Invocar Lambda con eventos de otros servicios de AWS.

Evento

Un evento es un documento con formato JSON que contiene datos para que una función de Lambda los procese. El tiempo de ejecución convierte el evento en un objeto y lo pasa al código de la función. Cuando se invoca una función, se determina la estructura y el contenido del evento.

ejemplo evento personalizado: datos del tiempo
{ "TemperatureK": 281, "WindKmh": -3, "HumidityPct": 0.55, "PressureHPa": 1020 }

Cuando un servicio de AWS invoca una función, el servicio define la forma del evento.

ejemplo evento de servicio: notificación de Amazon SNS
{ "Records": [ { "Sns": { "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", ...

Para obtener más información acerca de los eventos de los servicios de AWS, consulte Invocar Lambda con eventos de otros servicios de AWS.

Entorno de ejecución

Un entorno de ejecución proporciona un entorno en tiempo de ejecución seguro y aislado para su función de Lambda. Un entorno de ejecución administra los procesos y recursos necesarios para ejecutar la función. El entorno de ejecución proporciona compatibilidad del ciclo de vida para la función y para cualquier extensión asociada a la función.

Para obtener más información, consulte Entorno de ejecución de Lambda.

Arquitectura del conjunto de instrucciones

La arquitectura del conjunto de instrucciones determina el tipo de procesador informático que Lambda utiliza para ejecutar la función. Lambda proporciona una variedad de arquitecturas del conjunto de instrucciones:

  • arm64: arquitectura ARM de 64 bits, para el procesador Graviton2 de AWS

  • x86_64: arquitectura x86 de 64 bits, para procesadores basados en x86

Para obtener más información, consulte Configuración de la arquitectura del conjunto de instrucciones para una función de Lambda.

Paquete de implementación

Implemente el código de las funciones de Lambda con un paquete de implementación. Lambda admite dos tipos de paquetes de implementaciones:

  • Un archivo .zip que contiene su código de función y sus dependencias. Lambda proporciona el sistema operativo y el tiempo de ejecución de su función.

  • Imagen de contenedor compatible con la especificación Open Container Initiative (OCI). Agregue su código de función y dependencias a la imagen. También debe incluir el sistema operativo y un tiempo de ejecución de Lambda.

Para obtener más información, consulte Paquetes de implementación de Lambda.

Tiempo de ejecución

El tiempo de ejecución proporciona un entorno específico del lenguaje que se ejecuta en el entorno de ejecución. El tiempo de ejecución 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. Si empaqueta el código como un archivo de archivo .zip, debe configurar su función para utilizar un tiempo de ejecución que coincida con su lenguaje de programación. Para una imagen contenedor, se incluye el tiempo de ejecución al compilar la imagen.

Para obtener más información, consulte Tiempos de ejecución de Lambda.

Capa

Una capa de Lambda es un archivo .zip que puede contener código u otros datos adicionales. Una capa puede contener bibliotecas, un tiempo de ejecución personalizado, datos o archivos de configuración.

Las capas proporcionan una forma conveniente de empaquetar bibliotecas y otras dependencias que puede usar con las funciones de Lambda. El uso de capas reduce el tamaño de los archivos de implementación cargados y acelera la implementación de su código. Las capas también promueven el uso compartido de código y la separación de responsabilidades para que pueda iterar más rápido al escribir la lógica empresarial.

Puede incluir hasta cinco capas por función. Las capas se contabilizan para las cuotas del tamaño de implementación estándar de Lambda. Cuando incluye una capa en una función, el contenido se extrae al directorio de /opt en el entorno de ejecución.

De forma predeterminada, las capas que cree son privadas de su cuenta de AWS. Puede optar por compartir una capa con otras cuentas o hacer que la capa sea pública. Si sus funciones consumen una capa que publicó una cuenta diferente, sus funciones pueden continuar usando la versión de la capa después de que se haya eliminado o después de que se revoque su permiso para acceder a la capa. Sin embargo, no puede crear una nueva función o actualizar funciones usando una versión de capa eliminada.

Las funciones implementadas como una imagen de contenedor no usan capas. En su lugar, empaqueta su tiempo de ejecución preferido, bibliotecas y otras dependencias en la imagen contenedor cuando construye la imagen.

Para obtener más información, consulte Administración de las dependencias de Lambda con capas.

Extensión

Las extensiones de Lambda permiten aumentar las funciones. Por ejemplo, puede usar extensiones para integrar las funciones con sus herramientas de monitoreo, observabilidad, seguridad y gobierno preferidas. Puede elegir entre un amplio conjunto de herramientas que proporciona Socios de AWS Lambda o puede crear sus propias extensiones de Lambda.

Una extensión interna se ejecuta en el proceso de tiempo de ejecución y comparte el mismo ciclo de vida que el tiempo de ejecución. Una extensión externa se ejecuta como un proceso independiente en el entorno de ejecución. La extensión externa se inicializa antes de que se invoque la función, se ejecuta en paralelo con el tiempo de ejecución de la función y continúa ejecutándose después de completar la invocación de la función.

Para obtener más información, consulte Aumente las funciones de Lambda utilizando extensiones de Lambda.

Simultaneidad

La simultaneidad es el número de solicitudes que la función atiende en un momento dado. Cuando se invoca la función, Lambda aprovisiona una instancia para procesar el evento. Cuando el código de la función termina de ejecutarse, puede encargarse de otra solicitud. Si la función se invoca de nuevo mientras se sigue procesando una solicitud, se aprovisiona otra instancia, lo que aumenta la simultaneidad de la función.

La simultaneidad está sujeta a cuotas en el nivel de región de AWS. Puede configurar funciones individuales para limitar su simultaneidad o para permitirles alcanzar un nivel específico de simultaneidad. Para obtener más información, consulte Configurar la simultaneidad reservada para una función.

Calificador

Al invocar o consultar una función, puede incluir un calificador para especificar una versión o alias. Una versión es una instantánea inmutable del código y la configuración de una función que tiene un calificador numérico. Por ejemplo, my-function:1. Un alias es un puntero a una versión que se puede actualizar para asignarla a una versión diferente o dividir el tráfico entre dos versiones. Por ejemplo, my-function:BLUE. Puede usar versiones y alias al mismo tiempo para proporcionar una interfaz estable para que los clientes invoquen su función.

Para obtener más información, consulte Versiones de la función de Lambda.

Destino

Un destino es un recurso de AWS en que Lambda puede enviar eventos desde una invocación asíncrona. Puede configurar un destino para eventos que no han podido procesarse. Algunos servicios también admiten un destino para eventos que se procesan correctamente.

Para obtener más información, consulte Configuración de destinos para invocación asincrónica.