Lab 9 Lambda
Clase 64 de 75 • Curso de AWS Certified Solutions Architect Associate
Resumen
La computación serverless está revolucionando la forma en que las empresas gestionan sus recursos tecnológicos, permitiendo mayor flexibilidad y eficiencia en el desarrollo de aplicaciones. AWS Lambda se posiciona como una solución potente para automatizar procesos como el procesamiento de pagos, ofreciendo un modelo donde solo pagas por el tiempo de ejecución que realmente utilizas, sin preocuparte por la infraestructura subyacente.
¿Qué es AWS Lambda y cómo puede ayudar en la automatización de procesos?
AWS Lambda es un servicio de computación serverless que permite ejecutar código sin aprovisionar ni administrar servidores. Este servicio se activa mediante eventos y ejecuta funciones o código que realizan acciones específicas, como la validación de datos o la consulta de fondos disponibles en una cuenta bancaria.
La principal ventaja de Lambda es que solo pagas por el tiempo de computación que consumes, sin costos cuando tu código no está ejecutándose. Esto lo convierte en una opción ideal para procesos intermitentes o que requieren escalabilidad automática.
En el contexto bancario, Lambda puede ser extremadamente útil para:
- Automatizar la validación de pagos
- Procesar transacciones en tiempo real
- Consultar disponibilidad de fondos
- Integrar con otros servicios como bases de datos
¿Cómo crear una función Lambda paso a paso?
Crear una función Lambda es un proceso sencillo que podemos dividir en etapas:
- Acceder al servicio Lambda en la consola de AWS.
- Seleccionar "Crear función".
- Elegir entre las opciones disponibles: empezar desde cero, usar un ejemplo simple (Hello World), utilizar una plantilla o una imagen de contenedor.
- Proporcionar la información básica:
- Nombre de la función
- Tiempo de ejecución (lenguaje de programación)
- Arquitectura
- Rol de ejecución (crear uno nuevo o usar uno existente)
- Configurar opciones adicionales si es necesario.
- Crear la función.
Una vez creada la función, accederemos a una interfaz que nos muestra un resumen de nuestra función Lambda. Desde aquí podemos configurar layers, agregar triggers (eventos que invocan la función) y modificar el código.
¿Cómo configurar eventos que disparan una función Lambda?
Los triggers o eventos son fundamentales en el funcionamiento de Lambda, ya que determinan cuándo se ejecutará nuestra función. AWS ofrece múltiples tipos de triggers, entre ellos:
- Amazon Alexa
- API Gateway
- AWS IoT
- CloudWatch Logs
- SNS (Simple Notification Service)
- SQS (Simple Queue Service)
Para configurar un trigger, simplemente:
- Seleccionamos el tipo de trigger deseado (por ejemplo, CloudWatch Logs).
- Configuramos los parámetros específicos del trigger (como el grupo de logs).
- Agregamos un nombre de filtro si es necesario.
- Guardamos la configuración.
Visualmente, la consola de AWS mostrará cómo el servicio seleccionado invocará nuestra función Lambda. Opcionalmente, podemos configurar un destino para los resultados de la ejecución, como S3, SQS o SNS.
¿Cómo desarrollar y probar el código de una función Lambda?
Lambda proporciona un entorno de desarrollo integrado (IDE) directamente en la consola de AWS, lo que facilita la escritura y prueba de código. Un ejemplo básico de función Lambda en JavaScript podría ser:
exports.handler = async (event, context) => {
return {
statusCode: 200,
body: "Hola desde Lambda"
};
};
Esta función simple recibe un evento y un contexto como parámetros, y retorna un objeto con un código de estado 200 (OK) y un mensaje en el cuerpo.
Para probar la función:
- Seleccionamos la opción "Test" en la parte superior.
- Creamos un nuevo evento de prueba con un nombre descriptivo.
- Utilizamos una plantilla predefinida o personalizamos el JSON del evento.
- Guardamos y ejecutamos la prueba.
Los resultados mostrarán el código de estado y el cuerpo de la respuesta, permitiéndonos verificar que nuestra función funciona correctamente.
¿Qué consideraciones importantes debemos tener al configurar una función Lambda?
Al configurar una función Lambda, es crucial prestar atención a varios parámetros que afectarán su rendimiento y costo:
-
Memoria asignada: Podemos configurar desde 128 MB hasta 10 GB. Es importante destacar que la CPU se asigna proporcionalmente a la memoria configurada, por lo que aumentar la memoria también mejora la potencia de procesamiento.
-
Tiempo máximo de ejecución: Las funciones Lambda tienen un límite de 15 minutos. Si nuestro proceso requiere más tiempo, debemos considerar:
- Dividir el proceso en varias funciones Lambda
- Utilizar otros servicios como EC2, Fargate o Step Functions
-
Almacenamiento efímero: Podemos configurar almacenamiento temporal en la ubicación
/tmp
. -
Concurrencia: Determina cuántas instancias de nuestra función pueden ejecutarse simultáneamente.
-
Permisos: Configurar correctamente los roles y políticas para que nuestra función pueda interactuar con otros servicios de AWS.
Lambda es ideal para procesos que se ajusten a sus limitaciones, especialmente aquellos que son intermitentes y pueden completarse dentro del límite de tiempo. Para casos de uso que requieren ejecución continua o tiempos más largos, es recomendable explorar alternativas como EC2, Fargate o Step Functions.
La computación serverless con AWS Lambda ofrece una forma eficiente de implementar funcionalidades específicas sin preocuparse por la infraestructura subyacente. Su modelo basado en eventos y su capacidad para integrarse con otros servicios de AWS lo convierten en una herramienta poderosa para la automatización de procesos. ¿Has implementado alguna solución utilizando Lambda? Comparte tu experiencia en los comentarios.