Características de Lambda adicionales - AWS Lambda

Características de Lambda adicionales

Lambda proporciona una consola de administración y una API para administrar e invocar funciones. Proporciona tiempos de ejecución que admiten un conjunto estándar de características para que pueda cambiar fácilmente de un lenguaje a otro o de una plataforma a otra en función de sus necesidades. Además de funciones, también puede crear versiones, alias, capas y tiempos de ejecución personalizados.

Escalado

Lambda administra la infraestructura que ejecuta el código, escalándola automáticamente en respuesta a las solicitudes entrantes. Cuando la función se invoca a mayor velocidad de la que una sola instancia de su función puede procesar eventos, Lambda amplía la capacidad ejecutando instancias adicionales. Cuando el tráfico disminuye, las instancias inactivas se bloquean o detienen. Solo paga por el tiempo que la función inicia o procesa eventos.

Para obtener más información, consulte Comprender el escalado de la función de Lambda.

Controles de simultaneidad

Utilice la configuración de simultaneidad para asegurarse de que sus aplicaciones de producción tengan alta disponibilidad y capacidad de respuesta.

Para evitar que una función utilice demasiada simultaneidad y para reservar una parte de la simultaneidad disponible de su cuenta para una función, utilice la simultaneidad reservada. La simultaneidad reservada divide el grupo de simultaneidad disponible en subconjuntos. Una función con simultaneidad reservada solo usa simultaneidad desde su subgrupo dedicado.

Para permitir a las funciones que se escalen sin fluctuaciones en la latencia, utilice la simultaneidad aprovisionada. Para las funciones que tardan mucho tiempo en inicializarse o que requieren latencia extremadamente baja para todas las invocaciones, la simultaneidad aprovisionada le permite inicializar previamente instancias de su función y que sigan ejecutándose en todo momento. Lambda se integra con Auto Scaling de aplicaciones para admitir el escalado automático para la concurrencia aprovisionada basada en la utilización.

Para obtener más información, consulte Configurar la simultaneidad reservada para una función.

URL de funciones

Lambda ofrece compatibilidad integrada para puntos de conexión HTTP(S) a través de URL de funciones. Con las URL de funciones, puede asignar un punto de conexión HTTP dedicado a la función de Lambda. Cuando la URL de función esté configurada, puede utilizarla para invocar la función a través de un navegador web, curl, Postman o cualquier cliente HTTP.

Puede agregar una URL de función a una función existente o crear una nueva función con una URL de función. Para obtener más información, consulte Invocación de URL de funciones de Lambda.

Invocación asincrónica

Al invocar una función, puede optar por invocarla de forma síncrona o asíncrona. Con invocación síncrona, espere la función para procesar el evento y devolver una respuesta. Con invocación asíncrona, Lambda pone en cola el evento para su procesamiento y devuelve una respuesta inmediatamente.

Lambda pone en cola eventos de invocación asíncrona antes de enviarlos a la función.

Para las invocaciones asíncronas, Lambda maneja reintentos si la función devuelve un error o está limitada. Para personalizar este comportamiento, puede configurar las opciones de gestión de errores en una función, versión o alias. También puede configurar Lambda para que envíe eventos que hayan fallado en el procesamiento a una cola de mensajes fallidos o para que envíe un registro de cualquier invocación a un destino.

Para obtener más información, consulte Invocación asincrónica.

Mapeos de origen de eventos

Para procesar elementos de una transmisión o una cola, puede crear un mapeo de origen de eventos. Un mapeo de fuente de eventos es un recurso en Lambda que lee los elementos de una cola de Amazon Simple Queue Service (Amazon SQS), Amazon Kinesis Stream o Amazon DynamoDB Stream, y envía los elementos a su función en lotes. Cada evento que su función procesa puede contener cientos o miles de elementos.

Una asignación de fuente de eventos lee registros de un flujo de Kinesis.

Los mapeos de origen de eventos mantienen una cola local de elementos no procesados y manejan los reintentos si la función devuelve un error o está limitada. Puede configurar un mapeo de origen de eventos para personalizar el comportamiento de lotes y el control de errores, o para enviar un registro de elementos que no se han podido procesar a un destino.

Para obtener más información, consulte Cómo procesa Lambda registros de orígenes de eventos basados en secuencias y colas.

Destinos

Un destino es un recurso de AWS que recibe registros de invocación para una función. Para invocación asíncrona, puede configurar Lambda para que envíe registros de invocación a una cola, un tema, una función o un bus de eventos. Puede configurar destinos separados para las invocaciones exitosas y los eventos que no se procesaron correctamente. El registro de invocación contiene detalles sobre el evento, la respuesta de la función y el motivo por el que se ha enviado el registro.

Lambda envía registros de invocación a un destino de bus de evento o a una cola, dependiendo del resultado.

Para los mapeos de fuente de eventos que leen desde flujos, puede configurar Lambda para que envíe un registro de lotes que no se han procesado correctamente a una cola o tema. Un registro de error para un mapeo de origen de evento contiene metadatos sobre el lote y apunta a los elementos de la secuencia.

Para obtener más información, consulte Configuración de destinos para invocación asincrónica y las secciones de control de errores de Uso de AWS Lambda con Amazon DynamoDB y Cómo Lambda procesa los registros de Amazon Kinesis Data Streams.

Proyectos de funciones

Cuando crea una función en la consola de Lambda, puede elegir iniciar desde cero, utilizar un esquema o emplear una imagen de contenedor. Un proyecto proporciona código de muestra que indica cómo usar Lambda con un servicio de AWS o una aplicación de terceros popular. Los proyectos incluyen preajustes de configuración de código de muestra y funciones para los tiempos de ejecución de Node.js y Python.

Los proyectos se proporcionan para su uso bajo la licencia de Amazon Software. Solo están disponibles en la consola Lambda.

Herramientas de prueba e implementación

Lambda admite la implementación de código tal como está o como imágenes de contenedor. Puede utilizar servicios de AWS y herramientas conocidas en la comunidad como la interfaz de línea de comandos (CLI) de Docker para crear, compilar e implementar funciones de Lambda. Para configurar la CLI de Docker, consulte Obtener Docker en el sitio web de Docker Docs. Para obtener una introducción al uso de Docker con AWS, consulte Introducción a Amazon ECR mediante la AWS CLI en la Guía de usuario de Amazon Elastic Container.

AWS CLI y AWS SAM CLI son herramientas de línea de comandos para la administración de pilas de aplicaciones de Lambda. Además de comandos para la administración de pilas de aplicaciones con la API de AWS CloudFormation, AWS CLI es compatible con comandos de nivel superior, que simplifican tareas como la carga de paquetes de despliegue y la actualización de plantillas. El CLI AWS SAM proporciona funcionalidad adicional, que incluye validación de plantillas, pruebas de forma local e integración con sistemas CI/CD.

Plantillas de aplicaciones

Puede utilizar la consola de Lambda para crear una aplicación con una canalización de entrega continua. Las plantillas de aplicación de la consola de Lambda incluyen código para una o varias funciones, una plantilla de aplicación que define funciones y recursos AWS compatibles y una plantilla de infraestructura que define una canalización de AWS CodePipeline. La canalización tiene etapas de compilación e implementación que se ejecutan cada vez que inserta cambios en el repositorio Git incluido.

Las plantillas de aplicación se proporcionan para su uso bajo la licencia MIT sin atribución . Solo están disponibles en la consola Lambda.

Para obtener más información, consulte Administración de aplicaciones en la consola de AWS Lambda.