Serverloze backend met AWS Lambda en API Gateway · Les

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.

Les 4 van 413 stappen

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-events

Bestemmingen: 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.

Gratis beginnen

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

  1. Lambda-runtime en handler
  2. Omgevingsvariabelen en lagen
  3. Logboekregistratie en monitoring met CloudWatch
  4. Foutafhandeling, retries en dead-letter queues
← Terug naar Serverloze backend met AWS Lambda en API Gateway