Foutafhandeling, retries en dead-letter queues
Bouw robuuste Lambda-functies door te begrijpen hoe fouten zich verspreiden, hoe retries per aanroeptype werken en hoe dead-letter queues fouten vastleggen.
Foutafhandeling, retries en dead-letter queues is een gratis Serverloze backend met AWS Lambda en API Gateway-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Serverloze backend met AWS Lambda en API Gateway. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Serverloze backend met AWS Lambda en API Gateway bevat in totaal 4 lessen.
Fouten in serverloze functies
Wanneer een functie een fout genereert of een time-out bereikt, behandelt het platform dit als een mislukte aanroep. Hoe die fout wordt afgehandeld, hangt af van de manier waarop de functie is aangeroepen.
- Synchroon: de fout wordt naar de aanroeper teruggestuurd
- Asynchroon: het platform probeert het automatisch opnieuw
- Stream/polling: het gedrag hangt af van de bron
Synchrone foutafhandeling
Bij synchrone aanroepen, zoals een API-aanvraag, wordt de fout direct naar de aanroeper teruggestuurd. De aanroeper, bijvoorbeeld API Gateway, bepaalt hoe deze naar een HTTP-status wordt gemapt.
Asynchrone nieuwe pogingen
Bij asynchrone aanroepen probeert het platform mislukte gebeurtenissen automatisch een paar keer opnieuw, met een vertraging ertussen, voordat het opgeeft. Je code moet veilig meerdere keren kunnen worden uitgevoerd.
Idempotentie
Omdat nieuwe pogingen een gebeurtenis opnieuw kunnen uitvoeren, moeten functies idempotent zijn: tweemaal dezelfde gebeurtenis verwerken levert hetzelfde resultaat op zonder dubbele neveneffecten.
def handler(event, context):
key = event["id"]
if already_processed(key):
return "skip"
process(key)
mark_processed(key)
return "ok"Try/Except in de handler
Vang verwachte fouten op en reageer netjes; laat echt onverwachte fouten omhoog borrelen, zodat het platform ze opnieuw kan proberen of vastleggen.
def handler(event, context):
try:
return do_work(event)
except ValidationError as e:
return {"statusCode": 400, "body": str(e)}Dead-letter-wachtrijen
Een dead-letter-wachtrij (DLQ) verzamelt gebeurtenissen die na alle nieuwe pogingen nog steeds mislukken, zodat ze niet verloren gaan. Je kunt ze later onderzoeken en opnieuw verwerken.
- Koppel een SQS-wachtrij of SNS-onderwerp als de DLQ
- Mislukte gebeurtenissen komen daar met metagegevens terecht
Een DLQ configureren
Je verwijst vanuit de functie naar een DLQ-doel. Nadat alle nieuwe pogingen zijn verbruikt, levert het platform de mislukte gebeurtenis daar af in plaats van deze te verwijderen.
aws lambda update-function-configuration \
--function-name worker \
--dead-letter-config TargetArn=arn:aws:sqs:...:failed-eventsBestemmingen: geslaagd en mislukt
Naast DLQ's leiden bestemmingen het resultaat van asynchrone aanroepen bij succes of mislukking naar een andere service, met uitgebreidere context dan een DLQ biedt.
Streamfouten afhandelen
Bij streambronnen, zoals een wachtrij of stream, kan een mislukte batch de voortgang blokkeren. Configureer het opsplitsen van batches of een maximale ouderdom voor nieuwe pogingen, zodat één problematisch bericht niet de hele stream ophoudt.
Time-outs versus fouten
Een time-out is een soort fout: de functie is niet op tijd voltooid. Stel time-outs realistisch in en instrumenteer langdurige bewerkingen, zodat je time-outs kunt onderscheiden van gegenereerde fouten.
Observeerbaarheid bij fouten
Log fouten met context, publiceer meetwaarden voor aantallen fouten en activeer een alarm bij de omvang van de DLQ. Een groeiende DLQ is een vroeg signaal dat iets structureel niet goed werkt.
Korte controle
Test je begrip van foutafhandeling.
Samenvatting
Je hebt robuuste foutafhandeling voor Lambda geleerd: hoe fouten per aanroeptype worden doorgegeven, waarom idempotentie belangrijk is bij nieuwe pogingen, hoe je try/except verstandig gebruikt en hoe dead-letter-wachtrijen en bestemmingen fouten vastleggen, zodat gebeurtenissen nooit stilletjes verloren gaan.
Leer Serverloze backend met AWS Lambda en API Gateway met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Foutafhandeling, retries en dead-letter queues” gratis?
Ja — de volledige tekst van “Foutafhandeling, retries en dead-letter queues” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Serverloze backend met AWS Lambda en API Gateway wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Serverloze backend met AWS Lambda en API Gateway bevat in totaal 4 lessen.
Wat leer ik in “Foutafhandeling, retries en dead-letter queues”?
Bouw robuuste Lambda-functies door te begrijpen hoe fouten zich verspreiden, hoe retries per aanroeptype werken en hoe dead-letter queues fouten vastleggen. Je oefent met Serverloze backend met AWS Lambda en API Gateway door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Serverloze backend met AWS Lambda en API Gateway te beginnen?
Ervaring vooraf is niet nodig. Serverloze backend met AWS Lambda en API Gateway op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Foutafhandeling, retries en dead-letter queues”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Serverloze backend met AWS Lambda en API Gateway?
Ja. Elke les over Serverloze backend met AWS Lambda en API Gateway bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Lambda-runtime en handler
- Omgevingsvariabelen en lagen
- Logboekregistratie en monitoring met CloudWatch
- Foutafhandeling, retries en dead-letter queues