Actualización de Usuarios en DynamoDB con Serverless Framework

Clase 16 de 25Curso de Serverless Framework en AWS

Resumen

¿Cómo integrar updates en una aplicación serverless con DynamoDB?

La integración y actualización de datos en una aplicación serverless con DynamoDB es un componente esencial que te permitirá tener un sistema CRUD totalmente funcional. Hasta este punto, hemos cubierto los métodos de creación y consulta. La lógica de actualización tiene sus propios matices, y aquí te llevaremos paso a paso para implementar el método update usando Amazon DynamoDB con lambda functions.

¿Cómo estructurar el proyecto para implementar la función update?

Para comenzar, debes contar con una estructura de carpetas adecuada. Crea una carpeta llamada updateUsers donde incluirás un archivo handler.js. Es importante modificar el serverless.yml para añadir una nueva función lambda que representará la funcionalidad de updateUsers. Recuerda:

  • Actualizar el nombre de la función: Cambia el nombre en el archivo de configuración serverless.yml.
  • Definir el handler correspondiente: Asegúrate de que el handler apunta al archivo handler.js dentro de tu carpeta updateUsers.
  • Seleccionar el método HTTP correcto: Según las buenas prácticas de DynamoDB, utiliza el método HTTP PATCH para las actualizaciones.

¿Cómo hacer el refactoring del código para el update?

Un punto crucial al implementar la función de update es el refactoring del código base. A continuación, te explico cómo hacerlo:

  1. Obtener los parámetros necesarios: La función toma un ID desde la URL y un body que contiene los datos que se deben actualizar.

    const userId = // obtener ID de la URL
    const body = JSON.parse(event.body); // parsear el body para usarlo
    
  2. Configurar los params de DynamoDB: Adaptar los parámetros necesarios, incluyendo UpdateExpression, ExpressionAttributeNames, y ExpressionAttributeValues.

    const params = {
        TableName: 'users_table',
        Key: { 'userId': userId },
        UpdateExpression: 'SET #name = :name',
        ExpressionAttributeNames: { '#name': 'name' },
        ExpressionAttributeValues: { ':name': body.name }
    };
    
  3. Hacer el update llamado: Cambia la lógica para realizar la operación de update que incorpore los parámetros previamente configurados.

Esto te permitirá actualizar los datos según los inputs proporcionados en el body de la solicitud.

¿Cómo desplegar la función lambda actualizada?

Una vez que tu lógica está lista, es hora de desplegar la función. Usa el comando serverless deploy para iniciar el despliegue. Este proceso es sencillo y automatizado gracias a las capacidades del framework serverless.

Mira cómo se despliega una función lambda:

serverless deploy

Después de un despliegue exitoso, utiliza herramientas como Postman para verificar que la aplicación efectivamente realiza las actualizaciones sobre los registros de DynamoDB. Asegúrate de proporcionar el ID correcto y un body en formato JSON.

¿Cuál es el siguiente paso?

Ahora que tienes una aplicación parcialmente completa con create, read, y update, el siguiente paso será implementar la funcionalidad de delete para completar el ciclo CRUD. Mantente atento a la próxima clase donde exploraremos cómo eliminar registros utilizando lambda functions.

En cada paso del camino, vamos construyendo un sistema cada vez más robusto y eficiente que se aprovecha de la escalabilidad y facilidad de implementación que AWS y el framework serverless ofrecen. ¡Sigue adelante y comparte tus experiencias con la comunidad!