AWS Lambda es un servicio de Amazon Web Services (AWS) que permite ejecutar código sin necesidad de provisionar o administrar servidores. Con Lambda, se puede crear una función o "lambda" que se activa automáticamente cuando se produce un evento, como una solicitud a una API, un cambio en una base de datos o una señal de IoT. El código se ejecuta en un entorno aislado y escalable, y AWS se encarga de toda la infraestructura necesaria para su ejecución.
AWS Lambda brinda varias facilidades para el desarrollo, la ejecución y la escalabilidad de aplicaciones. Algunas de las principales incluyen:
Sin servidores: Con AWS Lambda, no es necesario provisionar ni administrar servidores. El código se ejecuta en un entorno aislado y escalable proporcionado por AWS.
Escalabilidad automática: AWS Lambda se encarga de escalar automáticamente las funciones de acuerdo a la demanda.
Integración con otros servicios: Se puede integrar con otros servicios de AWS como Amazon S3, Amazon DynamoDB, Amazon SNS, entre otros.
Alta disponibilidad: AWS Lambda asegura la alta disponibilidad de las funciones, garantizando que siempre estén disponibles para responder a eventos.
Soporte de varios lenguajes: AWS Lambda soporta varios lenguajes de programación como Node.js, Python, Java, C# y Go.
Facilidad para depurar y monitorear: AWS Lambda ofrece herramientas de monitoreo y depuración para ayudar a detectar y corregir problemas en las funciones.
Costos bajos: AWS Lambda se factura por el tiempo de ejecución y el uso de memoria, lo que permite reducir los costos al solo pagar por lo que se usa.
Flexibilidad de implementación: AWS Lambda permite implementar funciones tanto mediante carga de archivos como a través de un contenedor o incluso desde un repositorio de código.
Event-driven: AWS Lambda es una plataforma event-driven, lo que significa que las funciones se activan automáticamente cuando se produce un evento, como una solicitud HTTP, un cambio en una base de datos, una señal de IoT, entre otros.
Seguridad: AWS Lambda proporciona una serie de mecanismos de seguridad para proteger las funciones y los datos, como la autenticación y autorización mediante IAM, la encriptación de datos en tránsito y en reposo, y la integración con AWS Certificate Manager.
Fiabilidad: AWS Lambda proporciona una alta disponibilidad y escalabilidad automática para garantizar que las funciones estén siempre disponibles para responder a los eventos.
Integración con AWS Step Functions: AWS Lambda se puede integrar con AWS Step Functions para crear aplicaciones serverless de flujo de trabajo.
¿Cómo crear una Lambda?
Lo primero es ingresar a la consola Lambda e iniciar sesión de ser necesario, dentro de la consola buscamos el botón para crear una función:
Una vez dentro, tendremos una interfaz como la siguiente en la que podremos seleccionar la configuración esencial para nuestra Lambda:
En este caso crearemos una Lambda llamada PruebasLambda que trabajará en Python 3.9 y contará con los permisos de ejecución esenciales.
Una vez listo, solo damos click en el botón de Crear una Función:
Se desplegará la interfaz en la que podremos configurar todo lo referente a la ejecución de nuestra Lambda, así como el código que ejecutará:
En la pestaña de Código podremos ver la plantilla generada automáticamente, la función lambda_handler será la que se ejecutará cada vez que nuestra Lambda sea requerida:
Recursos externos:
What is AWS Lambda? - AWS Lambda (amazon.com)
Using AWS Lambda with Amazon S3 - AWS Lambda
Using AWS Lambda with Amazon DynamoDB - AWS Lambda
DynamoDB — Boto3 Docs 1.26.46 documentation (amazonaws.com)
Lambda deployment packages - AWS Lambda (amazon.com)