Creación y Configuración de CRUD Serverless con DynamoDB
Clase 12 de 25 • Curso de Serverless Framework en AWS
Resumen
¿Cómo iniciar un proyecto serverless con DynamoDB?
Adentrarse en el mundo del desarrollo serverless puede parecer un reto, pero con las herramientas adecuadas, es un camino más accesible del que muchos piensan. Este artículo te guía a través de la implementación inicial de un proyecto serverless utilizando AWS API Gateway, Lambda y DynamoDB en un entorno simulado localmente.
¿Qué integra nuestro ecosistema serverless?
El ecosistema que estamos construyendo tiene varios componentes esenciales:
- Usuario: El punto de entrada para las llamadas vía HTTP.
- API Gateway: Maneja las solicitudes entrantes al sistema.
- Lambdas: Funciones que realizan operaciones específicas, conectadas a la base de datos.
- DynamoDB: Una base de datos serverless, ideal para este proyecto.
La administración de estos elementos se realiza a través de Serverless Framework, garantizando que todo nuestro despliegue sea coherente y eficiente.
¿Cuáles son los primeros pasos?
Para comenzar, consideramos una refactorización del proyecto existente:
- Renombrar directorios y funciones: Cambiar los nombres a algo más descriptivo y acorde a la función que realizarán, como
GetUsers
. - Modificar el archivo
serverless.yaml
: Adaptarlo a los nuevos nombres y funcionalidades, asegurando una estructura clara y consistente.
¿Cómo se integra DynamoDB mediante AWS-SDK?
Para interactuar con DynamoDB, es necesario instalar el “AWS-SDK”:
npm install aws-sdk --save-dev
Posteriormente, configurar un cliente de DynamoDB para manejar las consultas:
const AWS = require('aws-sdk');
const DynamoDB = new AWS.DynamoDB.DocumentClient();
Esta integración facilita la creación de queries y garantiza una comunicación efectiva con la base de datos.
¿Cómo se estructuran las consultas y el endpoint?
Definimos el handler getUsers
para gestionar las peticiones HTTP:
module.exports.getUsers = async (event) => {
const params = {
TableName: 'CRUDServerlessUsers',
KeyConditionExpression: 'pk = :pk',
ExpressionAttributeValues: {
':pk': 1,
},
};
try {
const res = await DynamoDB.query(params).promise();
return {
statusCode: 200,
body: JSON.stringify({ user: res.Items }),
};
} catch (error) {
return {
statusCode: 500,
body: JSON.stringify({ error: error.message }),
};
}
};
¿Cuáles son las claves del desarrollo local con serverless offline?
Probar localmente tu aplicación es crucial para asegurar un correcto funcionamiento antes de migrar a producción. Siguientes pasos:
- Instala y configura el plugin
serverless-offline
. - Ejecuta el servidor local con el comando:
serverless offline start
Este comando simula el comportamiento de API Gateway y Lambda en tu entorno local.
¿Cómo abordar errores comunes en el desarrollo?
El manejo de errores es parte del proceso de aprendizaje. Algunos errores típicos incluyen:
- Errores de nombres de handlers: Verifica que los nombres coincidan entre tu código y la configuración.
- Keys invalidas en DynamoDB: Asegúrate de que las condiciones y expresiones sean correctas.
- Recursos no encontrados: Confirma que tanto tu base de datos como tus tablas existan y estén correctamente referenciadas.
¿Qué sigue después de la configuración inicial?
Después de establecer la lógica básica, el siguiente paso es crear la base de datos en DynamoDB y optimizar el rendimiento de las queries. Es importante seguir investigando y formándote en esta área para perfeccionar tus habilidades en el desarrollo serverless.
El mundo serverless es vasto y ofrece infinitas oportunidades para desarrolladores que buscan eficiencia y escalabilidad. No dudes en continuar explorando y experimentando con nuevas tecnologías y estrategias dentro de este emocionante ecosistema.