[Video] : Mise en place d’une Dead Letter Queue (DLQ) avec Amazon SQS
1. Prérequis
✅ Avoir un compte AWS actif.
✅ IAM User avec permissions sur SQS.
✅ AWS CLI installé et configuré (aws configure).
2. Création des files SQS (Queue principale et DLQ)
a. Création de la Dead Letter Queue (DLQ)
Via AWS Console :
- Aller sur SQS > Create queue.
- Choisir Standard Queue.
- Nom : my-dlq-lab.
- Config par défaut (laisser le reste tel quel).
- Créer la queue.
b. Création de la Queue Principale avec DLQ attachée
Via AWS Console :
- Aller sur SQS > Create queue.
- Choisir Standard Queue.
- Nom : my-main-queue-lab.
- Dans “Dead-letter queue” :
- Activer.
- Sélectionner la queue my-dlq-lab.
- MaxReceiveCount : 2 (ex : après 2 échecs, message envoyé en DLQ).
- Créer la queue.
3. Envoi de messages de test dans la queue principale
bash
aws sqs send-message \
--queue-url https://sqs..amazonaws.com//my-main-queue-lab \
--message-body "Test message 1"
4. Simulation d'échec de traitement (ne pas supprimer les messages)
Idée : Consommer les messages mais ne pas les supprimer pour simuler un échec.
a. Lecture du message sans suppression :
bash
aws sqs receive-message \
--queue-url https://sqs..amazonaws.com//my-main-queue-lab \
--max-number-of-messages 1
➡️ Ne pas appeler delete-message, pour simuler un échec.
Répéter cette commande plusieurs fois (2 fois) pour que le compteur d’échecs atteigne MaxReceiveCount et que le message soit envoyé vers la DLQ.
5. Vérification des messages arrivés en Dead Letter Queue
aws sqs receive-message \
--queue-url https://sqs..amazonaws.com//my-dlq-lab \
--max-number-of-messages 10
✅ Tu devrais retrouver les messages échoués ici.
6. Suppression des messages dans la DLQ (nettoyage manuel)
bash
aws sqs delete-message \
--queue-url https://sqs..amazonaws.com//my-dlq-lab \
--receipt-handle ""
⚠️ Remplacer <ReceiptHandle> par la valeur obtenue lors de la lecture du message.
7. Suppression des files (Nettoyage complet)
bash
aws sqs delete-queue --queue-url https://sqs..amazonaws.com//my-main-queue-lab
aws sqs delete-queue --queue-url https://sqs..amazonaws.com//my-dlq-lab