Funciones Lambda en AWS: Principales Usos y Ejemplo Práctico

Funciones Lambda en AWS: Principales Usos y Ejemplo Práctico

¿Qué son las Funciones Lambda?

Comparando enfoques de diseño al crear microservicios serverless | Blog de  Amazon Web Services (AWS)

Las funciones Lambda son piezas de código ejecutadas bajo demanda en una arquitectura serverless (sin servidores). Proporcionan una manera eficiente y escalable de ejecutar funciones específicas en respuesta a eventos, sin necesidad de administrar infraestructura.

AWS Lambda, en particular, es uno de los servicios más populares para implementar estas funciones. Ofrece integración con otros servicios de AWS y permite ejecutar código en varios lenguajes, como Python, Node.js, Java, entre otros.

Principales Usos de las Funciones Lambda

  1. Procesamiento de Eventos en Tiempo Real:

    • Ejemplo: Procesar datos de sensores IoT o eventos de clics en aplicaciones web.
  2. Automatización de Tareas:

    • Ejemplo: Generar informes o limpiar datos en S3.
  3. Backend para Aplicaciones:

    • Ejemplo: Responder a solicitudes HTTP mediante API Gateway.
  4. Integración de Servicios:

    • Ejemplo: Sincronizar bases de datos o disparar procesos entre servicios de AWS.
  5. Procesamiento de Imágenes o Videos:

    • Ejemplo: Redimensionar imágenes subidas a un bucket S3.
  6. Notificaciones y Monitoreo:

    • Ejemplo: Enviar alertas por correo electrónico usando SNS.

Ventajas de AWS Lambda

  • Sin Servidores: No es necesario gestionar ni configurar servidores.
  • Escalabilidad Automática: Maneja aumentos de tráfico automáticamente.
  • Pago por Uso: Cobros únicamente por el tiempo de ejecución y las solicitudes procesadas.
  • Integración Nativa con AWS: Compatible con servicios como DynamoDB, S3, CloudWatch, entre otros.

Ejemplo Práctico: Procesar Archivos en S3 con AWS Lambda

En este ejemplo, crearemos una función Lambda que procesa archivos subidos a un bucket S3. Cuando se suba un archivo de texto, Lambda lo leerá y contará la cantidad de líneas, almacenando el resultado en un nuevo archivo.

1. Crear un Bucket en S3

  1. Accede a la consola de AWS y crea un bucket llamado archivo-procesado-demo.
  2. Configura permisos para que Lambda pueda acceder al bucket.

2. Crear la Función Lambda

Código de la Función:

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

exports.handler = async (event) => {
  const bucketName = event.Records[0].s3.bucket.name;
  const fileName = event.Records[0].s3.object.key;

  try {
    // Descargar el archivo desde S3
    const params = { Bucket: bucketName, Key: fileName };
    const fileData = await s3.getObject(params).promise();
    const fileContent = fileData.Body.toString('utf-8');

    // Contar líneas del archivo
    const lineCount = fileContent.split('\n').length;

    // Subir el resultado a S3
    const resultFileName = `processed/${fileName}-lines.txt`;
    const uploadParams = {
      Bucket: bucketName,
      Key: resultFileName,
      Body: `El archivo tiene ${lineCount} líneas.`,
    };
    await s3.putObject(uploadParams).promise();

    return {
      statusCode: 200,
      body: JSON.stringify({ message: 'Archivo procesado con éxito.' }),
    };
  } catch (error) {
    console.error('Error al procesar archivo:', error);
    return {
      statusCode: 500,
      body: JSON.stringify({ error: 'Error al procesar archivo' }),
    };
  }
};

				
			

3. Configurar la Función en AWS Lambda

  1. Accede a AWS Lambda y crea una nueva función.
  2. Selecciona Node.js 18 como entorno de ejecución.
  3. Sube el archivo comprimido (.zip) con el código y las dependencias necesarias.

4. Configurar el Disparador

  1. En la consola de Lambda, añade un disparador para el bucket S3.
  2. Configura el evento para que la función se ejecute al subir un archivo al bucket.

5. Probar el Proyecto

  1. Sube un archivo de texto al bucket archivo-procesado-demo.
  2. Revisa el bucket para encontrar un archivo en la carpeta processed/ con la cuenta de líneas.

Conclusión

AWS Lambda es una herramienta poderosa para desarrollar soluciones escalables y eficientes. En este ejemplo práctico, vimos cómo utilizar Lambda para procesar archivos en un bucket S3, mostrando su capacidad de automatización y su facilidad de integración con otros servicios de AWS.

Referencias:

Facebook
X
LinkedIn
Reddit
Pinterest
Threads

Post relacionados

Post recientes

Search