Files d’attente de lettres mortes et gestion des échecs
Les messages peuvent ne pas être traités. Découvrez comment les files d’attente de lettres mortes recueillent les messages indésirables, et comment concevoir les nouvelles tentatives et le retraitement de systèmes pilotés par les événements résilients.
Files d’attente de lettres mortes et gestion des échecs est une leçon Serverless Backend with AWS Lambda & API Gateway gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Serverless Backend with AWS Lambda & API Gateway, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Serverless Backend with AWS Lambda & API Gateway comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
The Problem of Failing Messages
In an event-driven system a message may fail repeatedly — bad data, a downstream outage, or a bug. Without a safety net, it can block the queue or be lost forever.
What is a Dead-Letter Queue?
A dead-letter queue (DLQ) is a separate queue that captures messages that could not be processed after a set number of attempts. This isolates poison messages without losing them.
Redrive Policy
An SQS queue routes to a DLQ via a redrive policy that names the DLQ and a maxReceiveCount. After that many failed receives, the message moves to the DLQ.
{
"deadLetterTargetArn": "arn:aws:sqs:us-east-1:123:orders-dlq",
"maxReceiveCount": 5
}Configuring a DLQ for Lambda
Async Lambda invocations (S3, SNS) can send failures to a DLQ or to an on-failure destination via the event invoke config.
aws lambda put-function-event-invoke-config \
--function-name processOrder \
--destination-config '{"OnFailure":{"Destination":"arn:aws:sqs:...:orders-dlq"}}'Setting maxReceiveCount Wisely
Too low and transient blips dead-letter good messages; too high and a poison message wastes many retries. A value of 3 to 5 is a common starting point.
Inspecting Dead-Lettered Messages
Messages in the DLQ keep the original body plus attributes showing why they failed. Read them to diagnose the root cause before reprocessing.
aws sqs receive-message \
--queue-url https://sqs.../orders-dlq \
--attribute-names AllRedriving Messages Back
Once the bug is fixed, SQS can redrive messages from the DLQ back to the source queue for reprocessing — no manual copying needed.
Idempotency Matters
Because retries and redrives can deliver the same message more than once, your handler must be idempotent: processing the same message twice should not double-charge or duplicate records.
Alerting on the DLQ
A growing DLQ is a signal something is broken. Set a CloudWatch alarm on the DLQ ApproximateNumberOfMessagesVisible metric to get notified.
Partial Batch Failures
When Lambda reads a batch from SQS, reporting batchItemFailures lets only the failed messages return to the queue, instead of reprocessing the whole batch.
{
"batchItemFailures": [
{ "itemIdentifier": "msg-id-3" }
]
}Designing for Resilience
A resilient pipeline combines:
- Retries for transient errors
- A DLQ for poison messages
- Idempotent handlers
- Alarms and a redrive plan
Quick Check
Test your failure-handling knowledge.
Recap
You learned to handle failing messages:
- A DLQ isolates poison messages after maxReceiveCount
- Configure redrive policies and Lambda on-failure destinations
- Inspect, fix, then redrive messages back
- Make handlers idempotent and alarm on DLQ depth
- Use batchItemFailures for partial batch retries
Questions Fréquemment Posées
La leçon « Files d’attente de lettres mortes et gestion des échecs » est-elle gratuite ?
Oui — le texte complet de « Files d’attente de lettres mortes et gestion des échecs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Serverless Backend with AWS Lambda & API Gateway, passe à CoddyKit PRO. Le cours Serverless Backend with AWS Lambda & API Gateway comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Files d’attente de lettres mortes et gestion des échecs » ?
Les messages peuvent ne pas être traités. Découvrez comment les files d’attente de lettres mortes recueillent les messages indésirables, et comment concevoir les nouvelles tentatives et le retraiteme… Tu pratiques Serverless Backend with AWS Lambda & API Gateway avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Serverless Backend with AWS Lambda & API Gateway ?
Aucune expérience préalable n'est requise. Serverless Backend with AWS Lambda & API Gateway sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Files d’attente de lettres mortes et gestion des échecs » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Serverless Backend with AWS Lambda & API Gateway ?
Oui. Chaque leçon Serverless Backend with AWS Lambda & API Gateway inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- SQS pour découpler les services
- SNS pour la messagerie publication/abonnement
- Déclencheurs Lambda avec SQS/SNS
- Files d’attente de lettres mortes et gestion des échecs