Tutorial Completo de AWS Lambda: Guía Práctica para la Certificación AWS

Aprende a crear, configurar y optimizar funciones Lambda con ejemplos prácticos y casos de uso real

AWS Lambda Serverless Certificación AWS Cloud Computing AWS S3 Tutorial Práctico

Introducción a AWS Lambda

AWS Lambda es un servicio de computación sin servidor que te permite ejecutar código sin aprovisionar ni administrar servidores. Solo pagas por el tiempo de computación que consumes, sin cargos cuando tu código no se está ejecutando.

¿Por qué usar AWS Lambda?
  • No hay servidores que administrar
  • Escalado automático
  • Pago por uso (ahorro de costos)
  • Alta disponibilidad y tolerancia a fallos integradas
  • Soporte para múltiples lenguajes de programación

Tutorial paso a paso

1 Acceder a la consola de AWS Lambda

  1. Inicia sesión en la consola de AWS
  2. Busca «Lambda» en la barra de búsqueda o navega a través de Servicios > Computación > Lambda

2 Crear tu primera función Lambda

  1. Haz clic en «Crear función»
  2. Selecciona «Crear desde cero»
  3. Proporciona un nombre para tu función (por ejemplo, «mi-primera-lambda»)
  4. En Runtime, selecciona «Node.js 18.x» (o la versión que prefieras)
  5. En Permisos, selecciona «Crear un nuevo rol con permisos básicos de Lambda»
  6. Haz clic en «Crear función»

3 Configurar el código de la función

La consola te llevará al editor de código. Verás un código de ejemplo similar a este:

exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

Puedes modificarlo para tu caso práctico (lo haremos más adelante).

4 Probar tu función

  1. Haz clic en «Prueba» en la parte superior
  2. Si es la primera vez, te pedirá crear un evento de prueba
  3. Proporciona un nombre para el evento (por ejemplo, «TestEvent»)
  4. Deja el JSON predeterminado o personalízalo
  5. Haz clic en «Crear»
  6. Haz clic en «Prueba» de nuevo para ejecutar la función con el evento de prueba

5 Revisar los resultados y registros

Después de la ejecución, verás:

  • El resultado de la ejecución
  • Los registros generados
  • El tiempo de ejecución y la memoria utilizada

Caso práctico: Procesador de Imágenes Serverless

Vamos a crear una función Lambda que procese información sobre imágenes almacenadas en S3. Esta función será activada cada vez que se suba una nueva imagen a un bucket específico.

1 Crear un bucket S3

  1. Ve a la consola de S3
  2. Crea un nuevo bucket (por ejemplo, «mi-bucket-de-imagenes-lambda-123»)
  3. Mantén la configuración predeterminada y asegúrate de que sea accesible desde tu cuenta

2 Crear un rol IAM con permisos adecuados

  1. Ve a la consola IAM
  2. Selecciona «Roles» y luego «Crear rol»
  3. Selecciona Lambda como el servicio que utilizará este rol
  4. Adjunta las siguientes políticas:
    • AWSLambdaBasicExecutionRole (para CloudWatch Logs)
    • AmazonS3ReadOnlyAccess (para leer objetos de S3)
  5. Nombra el rol (por ejemplo, «LambdaS3ProcessorRole»)
  6. Crea el rol

3 Crear la función Lambda

  1. Ve a la consola Lambda
  2. Crea una nueva función
  3. Dale un nombre descriptivo (por ejemplo, «procesador-de-imagenes»)
  4. Selecciona «Node.js 18.x» como runtime
  5. En Permisos, selecciona «Usar un rol existente» y elige el rol que creaste
  6. Haz clic en «Crear función»

4 Configurar el código de la función

Reemplaza el código predeterminado con el siguiente:

const AWS = require('aws-sdk');
const s3 = new AWS.S3();

exports.handler = async (event) => {
    try {
        // Obtener información del evento S3
        const bucket = event.Records[0].s3.bucket.name;
        const key = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, ' '));

        // Obtener los metadatos del objeto
        const metadata = await s3.headObject({
            Bucket: bucket,
            Key: key
        }).promise();

        // Extraer información relevante
        const fileSize = metadata.ContentLength;
        const contentType = metadata.ContentType;
        const lastModified = metadata.LastModified;

        // Verificar si es una imagen
        const isImage = contentType && contentType.startsWith('image/');

        // Preparar resultado
        const result = {
            bucket: bucket,
            key: key,
            fileSize: `${(fileSize / 1024).toFixed(2)} KB`,
            contentType: contentType,
            lastModified: lastModified,
            isImage: isImage
        };

        console.log('Procesamiento exitoso:', JSON.stringify(result, null, 2));

        return {
            statusCode: 200,
            body: JSON.stringify(result)
        };
    } catch (error) {
        console.error('Error al procesar el objeto:', error);
        return {
            statusCode: 500,
            body: JSON.stringify({ error: 'Error al procesar el objeto' })
        };
    }
};

5 Configurar el desencadenador S3

  1. En la página de tu función Lambda, ve a la pestaña «Configuración»
  2. Haz clic en «Agregar desencadenador»
  3. Selecciona «S3» como fuente del desencadenador
  4. Selecciona tu bucket de S3
  5. En Tipos de eventos, selecciona «Todos los eventos de creación de objetos»
  6. Marca la casilla para reconocer la invocación recursiva (si aplica)
  7. Haz clic en «Agregar»

6 Probar la función subiendo una imagen

  1. Ve a tu bucket de S3
  2. Sube una imagen cualquiera
  3. Regresa a Lambda y ve a la pestaña «Monitor»
  4. Haz clic en «Ver registros en CloudWatch»
  5. Deberías ver los registros de la ejecución con información sobre la imagen subida
Nota importante: Este caso práctico te ayuda a entender cómo Lambda interactúa con S3 y cómo procesar eventos automáticamente, aspectos clave para la certificación AWS.

Preguntas frecuentes para la certificación

Conceptos fundamentales de Lambda

  1. ¿Qué es AWS Lambda?

    Es un servicio de computación sin servidor que ejecuta código en respuesta a eventos y administra automáticamente los recursos de computación.

  2. ¿Cuáles son los límites de AWS Lambda?
    • Tiempo de ejecución máximo: 15 minutos
    • Memoria asignada: 128 MB – 10 GB
    • Tamaño del paquete de despliegue: 50 MB (comprimido) y 250 MB (descomprimido)
    • Tamaño de /tmp: 512 MB a 10 GB
    • Concurrencia: 1,000 (por defecto, puede incrementarse)
  3. ¿Qué son los triggers de Lambda?

    Son servicios de AWS que inician la ejecución de una función Lambda, como S3, DynamoDB, API Gateway, CloudWatch Events, etc.

  4. ¿Qué es el modelo de ejecución de Lambda?

    Lambda utiliza un modelo de ejecución que consiste en un entorno de ejecución, un manejador de invocaciones y enlaces a los AWS SDK.

Precios y optimización

  1. ¿Cómo se cobran las funciones Lambda?
    • Por número de solicitudes (primeras 1M gratis por mes)
    • Por duración (tiempo de ejecución redondeado a los 1ms más cercanos)
    • Por memoria asignada (GB-segundos)
  2. ¿Cómo se pueden optimizar los costos de Lambda?
    • Optimizando el código para reducir el tiempo de ejecución
    • Eligiendo la cantidad correcta de memoria
    • Implementando reutilización de conexiones
    • Utilizando variables de entorno en lugar de archivos de configuración pesados

Implementación y administración

  1. ¿Qué son las versiones y los alias en Lambda?
    • Versiones: capturas inmutables de una función
    • Alias: punteros a versiones específicas que pueden ser cambiados
  2. ¿Qué es una capa de Lambda?

    Es un archivo ZIP que contiene bibliotecas, tiempo de ejecución personalizado u otras dependencias, que se pueden usar en múltiples funciones.

  3. ¿Qué es AWS SAM?

    Serverless Application Model es un framework para construir aplicaciones sin servidor en AWS.

Integración con otros servicios

  1. ¿Cómo se integra Lambda con API Gateway?

    Lambda puede ser el backend de endpoints REST o WebSocket a través de API Gateway.

  2. ¿Cómo se integra Lambda con DynamoDB?

    Lambda puede procesar registros de DynamoDB Streams para reaccionar a cambios en la base de datos.

  3. ¿Qué es el patrón fan-out con Lambda y SNS?

    Es un patrón donde un mensaje enviado a SNS desencadena múltiples funciones Lambda para procesamiento paralelo.

Consejos para el examen

  1. Conoce bien los límites de Lambda y cuándo debería usarse otro servicio.
  2. Comprende el modelo de permisos y IAM para Lambda.
  3. Entiende cómo optimizar el rendimiento y los costos.
  4. Familiarízate con los patrones comunes de arquitectura serverless.
  5. Practica la configuración de desencadenadores desde diferentes servicios.

CloudDeployer – Tu experto en implementación en la nube

¿Necesitas ayuda con tu migración a la nube o con la implementación de arquitecturas serverless? CloudDeployer ofrece servicios de consultoría y soluciones en AWS, Azure y Google Cloud.

Contáctanos

© 2025 CloudDeployer – Todos los derechos reservados

CloudDeployer no está afiliado con Amazon Web Services.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comentario

Carrito de Compras

Carrito esta vacío

Puedes revisar todos los productos disponibles y comprar algunos en la tienda.

Volver a la tienda