🔄 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 primarias
NEW_IMAGE: solo la nueva versión
OLD_IMAGE: solo la versión anterior
NEW_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"
}
]
}