Cours > Module > Chapitre

Lab : DynamoDB Change Data Capture (CDC) avec DynamoDB Streams & AWS Lambda

[Video] DynamoDB Streams avec AWS Lambda SAA

Objectifs

  • Activer DynamoDB Streams sur une table DynamoDB.
  • Déclencher une fonction AWS Lambda lorsqu’un changement est détecté dans la table.
  • Stocker les événements dans Amazon S3 ou les afficher dans CloudWatch Logs.
  • Envoyer les événements capturés à une file Amazon SQS.

Cliquer sur le bouton ci dessous pour télécharger le template cloudformation

Étape 1 : Déploiement de l’infrastructure avec AWS CloudFormation

  1. Ouvrir la console AWS et accéder à CloudFormation.
  2. Déployer le template YAML : template-lab-dynamo-streams.yaml.
  3. Une fois le déploiement terminé, explorer les ressources créées.

Vérification des ressources créées

1. Table DynamoDB

  • Aller dans AWS > DynamoDB > Tables et ouvrir la table OrdersTable.
  • Vérifier que DynamoDB Streams est actuellement désactivé.

2. Rôle IAM

  • Aller dans AWS > IAM > Roles et rechercher le rôle LambdaDynamoDBSQSPublisher.
  • Vérifier les permissions existantes.
  • Modifier ce rôle pour ajouter la permission AWSLambdaInvocation-DynamoDB, permettant à Lambda d’interagir avec DynamoDB.

3. Fonction AWS Lambda

  • Aller dans AWS > Lambda et rechercher la fonction DynamoDBStreamProcessor.
  • Vérifier qu’elle n’a pas encore de trigger ni de rôle IAM associé (ils seront configurés plus tard).
  • Explorer le code et la variable d’environnement associée.

4. File Amazon SQS

  • Aller dans AWS > SQS et vérifier que la file DynamoDBEventQueue a bien été créée.

 

Étape 2 : Configuration de la fonction Lambda

Ajout d’un déclencheur sur DynamoDB Streams

  1. Accéder à AWS Lambda > DynamoDBStreamProcessor.
  2. Cliquer sur Ajouter un déclencheur.
  3. Configurer le déclencheur avec les paramètres suivants :
    • Source de déclenchement : DynamoDB.
    • Table : OrdersTable.
    • Stream : Activer DynamoDB Streams sur la table.
    • Mode de traitement : Lecture en continu (désactiver la lecture en batch).
  4. Cliquer sur Ajouter pour finaliser la configuration.

 

Étape 3 : Tester l’injection de données dans DynamoDB via AWS CLI

Ajout d’un élément dans DynamoDB

				
					aws dynamodb put-item --table-name OrdersTable --item '{
  "OrderID": {"S": "1001"},
  "Customer": {"S": "Alice"},
  "Total": {"N": "250"}
}'



				
			

Suppression d’un élément

				
					aws dynamodb delete-item --table-name OrdersTable --key '{"OrderID": {"S": "1001"}}'

				
			

Étape 4 : Vérification du pipeline DynamoDB → Lambda → SQS

Récupérer le message dans SQS

1. Exécuter la commande suivante pour recevoir le message depuis Amazon SQS :

				
					aws sqs receive-message --queue-url <SQS_QUEUE_URL>

				
			

2. Remplacer <SQS_QUEUE_URL> par l’URL de la file récupérée à l’étape 1.

Étape 5 : Nettoyage des ressources

Suppression des ressources pour éviter des frais

				
					aws cloudformation delete-stack --stack-name DynamoDBCDCStack

				
			

Vérification de la suppression du stack

				
					aws cloudformation describe-stacks --stack-name DynamoDBCDCStack

				
			

Conclusion

Dans ce lab, nous avons :
✅ Activé DynamoDB Streams et configuré une fonction AWS Lambda pour capturer les événements en temps réel.
✅ Stocké ces événements dans Amazon SQS.
✅ Vérifié la transmission des événements en testant l’insertion, la mise à jour et la suppression de données dans DynamoDB.

 

Ce mécanisme permet de mettre en place un Change Data Capture (CDC) évolutif et réactif pour alimenter des pipelines de données ou déclencher des workflows automatisés.

×

Panier