Serverløs backend med AWS Lambda & API Gateway · leksjon

Feilhåndtering, retries og dead-letter-køer

Bygg robuste Lambda-funksjoner ved å forstå hvordan feil forplanter seg, hvordan retries fungerer for hver påkallingstype, og hvordan dead-letter-køer fanger opp feil.

Leksjon 4 av 413 trinn

Feilhåndtering, retries og dead-letter-køer er en gratis leksjon i Serverløs backend med AWS Lambda & API Gateway på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Serverløs backend med AWS Lambda & API Gateway, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Serverløs backend med AWS Lambda & API Gateway inneholder totalt 4 leksjoner.

Feil i serverløse funksjoner

Når en funksjon kaster en feil eller får tidsavbrudd, behandler plattformen det som et mislykket kall. Hvordan feilen håndteres, avhenger av hvordan funksjonen ble kalt.

  • Synkront: Feilen returneres til anroperen
  • Asynkront: Plattformen prøver automatisk på nytt
  • Strøm/polling: Atferden avhenger av kilden

Synkron feilhåndtering

For synkrone kall (for eksempel en API-forespørsel) returneres feilen umiddelbart til anroperen. Anroperen, for eksempel API Gateway, avgjør hvordan den skal mappes til en HTTP-status.

Asynkrone nye forsøk

For asynkrone kall prøver plattformen automatisk på nytt å behandle mislykkede hendelser et par ganger, med en forsinkelse mellom forsøkene, før den gir opp. Koden må tåle å bli kjørt mer enn én gang.

Idempotens

Ettersom nye forsøk kan kjøre en hendelse på nytt, bør funksjoner være idempotente: Behandling av den samme hendelsen to ganger gir samme resultat uten dupliserte bieffekter.

def handler(event, context):
    key = event["id"]
    if already_processed(key):
        return "skip"
    process(key)
    mark_processed(key)
    return "ok"

Try/Except i handleren

Fang opp forventede feil og svar på en kontrollert måte; la virkelig uventede feil boble opp, slik at plattformen kan prøve på nytt eller registrere dem.

def handler(event, context):
    try:
        return do_work(event)
    except ValidationError as e:
        return {"statusCode": 400, "body": str(e)}

Dead-letter-køer

En dead-letter-kø (DLQ) fanger opp hendelser som fortsatt mislykkes etter alle nye forsøk, slik at de ikke går tapt. De kan undersøke og behandle dem på nytt senere.

  • Knytt en SQS-kø eller et SNS-emne til DLQ-en
  • Mislykkede hendelser havner der sammen med metadata

Konfigurere en DLQ

De angir et DLQ-mål for funksjonen. Når alle nye forsøk er brukt opp, leverer plattformen den mislykkede hendelsen dit i stedet for å forkaste den.

aws lambda update-function-configuration \
  --function-name worker \
  --dead-letter-config TargetArn=arn:aws:sqs:...:failed-events

Destinasjoner: Suksess og feil

I tillegg til DLQ-er kan destinasjoner sende resultatet av asynkrone kall ved suksess eller feil til en annen tjeneste, med mer kontekst enn en DLQ gir.

Håndtere feil i strømmer

For strømkilder (for eksempel en kø eller strøm) kan en mislykket gruppe blokkere fremdriften. Konfigurer oppdeling av grupper i to eller en maksimal alder for nye forsøk, slik at én problematisk melding ikke stopper hele strømmen.

Tidsavbrudd kontra feil

Et tidsavbrudd er en type feil: Funksjonen ble ikke ferdig i tide. Angi realistiske tidsavbrudd og instrumenter langvarige operasjoner, slik at De kan skille tidsavbrudd fra feil som er kastet.

Observerbarhet ved feil

Loggfør feil med kontekst, send ut måledata for antall feil og konfigurer alarmer for DLQ-dybde. En DLQ som vokser, er et tidlig signal om at noe systematisk er ødelagt.

Hurtigsjekk

Test forståelsen Deres av feilhåndtering.

Oppsummering

De har lært robust feilhåndtering i Lambda: hvordan feil forplanter seg avhengig av kalltypen, hvorfor idempotens er viktig ved nye forsøk, hvordan try/except bør brukes med omtanke, og hvordan dead-letter-køer og destinasjoner fanger opp feil slik at hendelser aldri går tapt uten varsel.

Gratis å komme i gang

Lær deg Serverløs backend med AWS Lambda & API Gateway med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Feilhåndtering, retries og dead-letter-køer» gratis?

Ja – hele teksten i «Feilhåndtering, retries og dead-letter-køer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Serverløs backend med AWS Lambda & API Gateway-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Serverløs backend med AWS Lambda & API Gateway inneholder totalt 4 leksjoner.

Hva lærer jeg i «Feilhåndtering, retries og dead-letter-køer»?

Bygg robuste Lambda-funksjoner ved å forstå hvordan feil forplanter seg, hvordan retries fungerer for hver påkallingstype, og hvordan dead-letter-køer fanger opp feil. Du øver på Serverløs backend med AWS Lambda & API Gateway med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Serverløs backend med AWS Lambda & API Gateway?

Ingen tidligere erfaring er nødvendig. Serverløs backend med AWS Lambda & API Gateway på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Feilhåndtering, retries og dead-letter-køer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Serverløs backend med AWS Lambda & API Gateway-leksjonen?

Ja. Alle Serverløs backend med AWS Lambda & API Gateway-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Lambda-kjøremiljø og handler
  2. Miljøvariabler og lag
  3. Logging og overvåking med CloudWatch
  4. Feilhåndtering, retries og dead-letter-køer
← Tilbake til Serverløs backend med AWS Lambda & API Gateway