¿Qué es AWS Lambda? - AWS Lambda

¿Qué es AWS Lambda?

Lambda es un servicio informático que le permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta el código en una infraestructura informática de alta disponibilidad y realiza toda la administración de los recursos informáticos, incluido el mantenimiento del servidor y del sistema operativo, el aprovisionamiento de la capacidad y el auto scaling, la supervisión y el registro de código. Con Lambda, puede ejecutar código para prácticamente cualquier tipo de aplicación o servicio de backend. Lo único que tiene que hacer es suministrar el código en uno de los lenguajes que admite Lambda.

nota

En el AWS Lambda Developer Guide, suponemos que tiene experiencia con la codificación, compilación e implementación de programas utilizando uno de los idiomas admitidos.

Organice su código en funciones de Lambda. Lambda ejecuta la función solo cuando es necesario y escala automáticamente, desde unas pocas solicitudes por día hasta miles por segundo. Solo pagará por el tiempo informático que consuma —, no se aplican cargos cuando el código no se está ejecutando.

Puede invocar sus funciones de Lambdautilizando la API Lambda o Lambda puede ejecutar las funciones en respuesta a eventos de otros servicios de AWS. Por ejemplo, puede utilizar Lambda para:

  • Crear desencadenadores de procesamiento de datos para servicios de AWS como Amazon Simple Storage Service (Amazon S3) y Amazon DynamoDB.

  • Procesar datos de transmisión almacenados en Amazon Kinesis.

  • Crear su propio backend que funcione a escala de AWS, rendimiento y seguridad.

Lambda es un servicio de alta disponibilidad. Para obtener más información, consulte el AWS LambdaAcuerdo de nivel de servicio.

¿Cuándo debo usar Lambda?

Lambda es un servicio informático ideal para muchos escenarios de aplicaciones, siempre que pueda ejecutar el código de la aplicación utilizando el entorno de tiempo de ejecución estándar de Lambda y dentro de los recursos que Lambda proporciona.

Cuando se utiliza Lambda, solo es necesario preocuparse por el código. Lambda administra la flota de computación, que ofrece una combinación equilibrada de memoria, CPU, red y otros recursos para ejecutar el código. Como Lambda administra estos recursos, no puede iniciar sesión en instancias de cálculo ni personalizar el sistema operativo en tiempos de ejecución proporcionados. Lambda realiza actividades operacionales y administrativas en su nombre, incluida la administración de la capacidad, la supervisión y el registro de las funciones de Lambda.

Si necesita administrar sus propios recursos informáticos, AWS ofrece otros servicios informáticos para satisfacer sus necesidades. Por ejemplo:

  • Amazon Elastic Compute Cloud (Amazon EC2) ofrece una amplia gama de tipos de instancias EC2 para elegir. Le permite personalizar los sistemas operativos, la configuración de red y seguridad, y toda la pila de software. Usted es responsable de aprovisionar la capacidad, supervisar el estado y el rendimiento de la flota y utilizar las zonas de disponibilidad para la tolerancia a fallos.

  • AWS Elastic Beanstalk le permite implementar y escalar aplicaciones en Amazon EC2. Usted conserva la propiedad y el control total sobre las instancias de EC2 subyacentes.

Características de Lambda

Las siguientes características clave lo ayudan a desarrollar aplicaciones escalables de Lambda, seguras y fácilmente extensibles:

Controles de concurrencia y escala

Los controles de concurrencia y escalado , como los límites de concurrencia y la concurrencia aprovisionada, le proporcionan un control detallado sobre el escalado y la capacidad de respuesta de las aplicaciones de producción.

Funciones definidas como imágenes de contenedor

Utilice las herramientas, flujos de trabajo y dependencias de imágenes de contenedor preferidas para crear, probar e implementar las funciones de Lambda.

Firma de código

Lafirma de código para Lambda proporciona controles de confianza e integridad que le permiten comprobar que solo se implementa en las funciones de Lambda el código inalterado publicado por los desarrolladores aprobados.

Extensiones de Lambda

Puede utilizar extensiones de Lambda para aumentar las funciones de Lambda. Por ejemplo, utilice extensiones para integrarse más fácilmente Lambda con sus herramientas favoritas de monitoreo, observabilidad, seguridad y control.

Proyectos de funciones

Un proyecto de función proporciona código de ejemplo que muestra cómo usar Lambda con otros servicios de AWS o aplicaciones de terceros. 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.

Acceso a la base de datos

Un proxy de base de datos administra un conjunto de conexiones de base de datos y transmite consultas desde una función. Esto permite que una función alcance altos niveles de simultaneidad sin agotar las conexiones de base de datos.

Acceso a sistemas de archivos

Puede configurar una función para montar un sistema de archivos de Amazon Elastic File System (Amazon EFS) en un directorio local. Con Amazon EFS, el código de función puede acceder y modificar los recursos compartidos de forma segura y en alta concurrencia.

Introducción a Lambda

Para trabajar con eficacia con Lambda, necesita experiencia en codificación y experiencia en los siguientes dominios:

  • Sistema operativo y comandos de Linux, así como conceptos como procesos, subprocesos y permisos de archivos.

  • Conceptos de la nube y conceptos de redes IP (para redes públicas y privadas).

  • Conceptos informáticos distribuidos como HTML como IPC, colas, mensajería, notificaciones y concurrencia.

  • Familiaridad con los servicios y conceptos de seguridad: AWS Identity and Access Management (IAM) y principios de control de acceso, y AWS Key Management Service (AWS KMS) e infraestructura de clave pública.

  • Familiaridad con los servicios clave que interactúan con Lambda: Amazon API Gateway, Amazon S3, Amazon Simple Queue Service (Amazon SQS) y DynamoDB.

  • Configuración de instancias EC2 con Linux.

Si es usuario por primera vez de Lambda, le recomendamos que comience con los siguientes temas para ayudarle a aprender los conceptos básicos:

  1. Lea la descripción general del producto de Lambda y explore la página de introducción de Lambda.

  2. Para crear y probar una función de Lambdamediante la consola de Lambda, pruebe el ejercicio de introducción basado en la consola. Este ejercicio le enseña sobre el modelo de programación de Lambda y otros conceptos.

  3. Si está familiarizado con los flujos de trabajo de imágenes de contenedor, pruebe el ejercicio de introducción para crear una función de Lambdadefinida como imagen del contenedor.

AWS también proporciona los siguientes recursos para aprender acerca de las aplicaciones sin servidor y Lambda:

Lambda se integra con otros servicios de AWS para invocar funciones basadas en eventos que especifique. Por ejemplo:

  • Use API Gateway para proporcionar un gateway seguro y escalable para las API web que enrutan solicitudes HTTP a las funciones de Lambda.

  • Para los servicios que generan una cola o flujo de datos (como DynamoDB y Kinesis), Lambda sondea la cola o el flujo de datos desde el servicio e invoca su función para procesar los datos recibidos.

  • Defina eventos de Amazon S3 que invocan una función de Lambda para procesar objetos de Amazon S3, por ejemplo, cuando se crea o elimina un objeto.

  • Utilice una función de Lambdapara procesar mensajes de Amazon SQS o notificaciones de Amazon Simple Notification Service (Amazon SNS) .

  • Use AWS Step Functions para conectar las funciones de Lambda en flujos de trabajo sin servidor denominados máquinas de estado.

Acceder a Lambda

Puede crear, invocar y administrar las funciones de Lambda utilizando cualquiera de las siguientes interfaces:

  • Consola de administración de AWS – Proporciona una interfaz web para que pueda acceder a sus funciones. Para obtener más información, consulte Configuración de funciones en la consola.

  • AWS Command Line Interface (AWS CLI) – Proporciona comandos para numerosos servicios de AWS, incluido Lambda y es compatible con Windows, macOS y Linux. Para obtener más información, consulte Uso de AWS Lambda con AWS Command Line Interface.

  • AWS SDK – Proporcione API específicas del idioma y administre muchos de los detalles de conexión, como el cálculo de firmas, el control de reintentos de solicitudes y el manejo de errores. Para obtener más información, consulte AWS SDK.

  • AWS CloudFormation – Le permite crear plantillas que definan las aplicaciones de Lambda. Para obtener más información, consulte Aplicaciones de AWS Lambda. AWS CloudFormation también es compatible con AWS Cloud Development Kit (CDK).

  • AWS Serverless Application Model (AWS SAM) – Proporciona plantillas y una CLI para configurar y administrar aplicaciones de AWS sin servidor. Para obtener más información, consulte AWS SAM.

Precios de Lambda

No hay cargo adicional por crear funciones de Lambda. Hay cargos por la ejecución de una función y por la transferencia de datos entre Lambda y otros servicios de AWS. Algunas funciones opcionales de Lambda (como la concurrencia aprovisionada) también incurren en cargos. Para obtener más información, consulte Precios de AWS Lambda.