¿Qué es AWS Lambda? - AWS Lambda

¿Qué es AWS Lambda?

Lambda es un servicio informático que permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta el código en una infraestructura informática de alta disponibilidad y realiza todas las tareas de administración de los recursos informáticos, incluido el mantenimiento del servidor y del sistema operativo, el aprovisionamiento de capacidad y el escalado automático, así como la monitorización del código y las funciones de registro. 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 la guía de desarrolladores de AWS Lambda, 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 su función solo cuando es necesario y escala de manera automática, 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 Lambda utilizando la API de 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 streaming 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 utilizar 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 su código. Como Lambda administra estos recursos, no puede iniciar sesión en instancias de informática ni personalizar el sistema operativo entiempos 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 variedad de tipos de instancias de EC2 de las cuales 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 de imágenes de contenedor , flujos de trabajo y dependencias preferidas para crear, probar e implementar las funciones de Lambda.

Firma de código

La firma 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 usar extensiones de Lambda para aumentar las funciones 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 Amazon Elastic File System (Amazon EFS) a 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 con 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 HTTP 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.

  • Conocimiento de 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 información general del producto de Lambda y explore la página de Introducción a Lambda.

  2. Para crear y probar una función de Lambda mediante 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 Lambda definida 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 Lambda para procesar mensajes 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 Consola de Lambda.

  • 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 Lambda con AWS CLI.

  • 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 AWS LambdaAplicaciones de . 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.