🔄 DynamoDB Streams: Explicación Clara y Directa
DynamoDB Streams es una característica de Amazon DynamoDB que permite capturar cambios (inserciones, actualizaciones y eliminaciones) en una tabla de DynamoDB en tiempo real.
📌 ¿Para qué sirve?
Con DynamoDB Streams puedes:
- Disparar funciones Lambda automáticamente cuando los datos cambian.
- Sincronizar datos con otros servicios o bases de datos.
- Auditar cambios.
- Implementar replicación entre regiones.
🧠 ¿Qué contiene un stream?
Cada registro en el stream puede contener:
- El elemento anterior (old image)
- El elemento nuevo (new image)
- Ambas imágenes
- Solo las claves modificadas
Esto depende de la configuración que elijas al habilitar el stream.
⚙️ ¿Cómo habilitar DynamoDB Streams?
Puedes hacerlo al crear o actualizar una tabla:
aws dynamodb update-table \ --table-name NombreDeTuTabla \ --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES
Tipos de StreamViewType:
KEYS_ONLY: solo claves primariasNEW_IMAGE: solo la nueva versiónOLD_IMAGE: solo la versión anteriorNEW_AND_OLD_IMAGES: ambas versiones
🚀 Conectar Streams a Lambda
- Crea la función Lambda.
- Asóciala al stream de la tabla:
aws lambda create-event-source-mapping \ --function-name lambda-export \ --event-source-arn arn:aws:dynamodb:REGION:ACCOUNT_ID:table/TuTabla/stream/FECHA \ --starting-position LATEST
📥 Ejemplo de evento recibido por Lambda
{ "Records": [ { "eventID": "1", "eventName": "INSERT", "dynamodb": { "Keys": { "ID": { "S": "123" } }, "NewImage": { "ID": { "S": "123" }, "Nombre": { "S": "Mario" } } }, "eventSource": "aws:dynamodb" } ] }
