Serverløs utvikling med AWS Lambda · leksjon

Asynkrone Lambda-oppkall

Lær detaljene ved asynkrone Lambda-oppkall, og forstå hendelseskilder, nye forsøk og fordelene ved langvarige prosesser eller batch-prosesser

Leksjon 1 av 412 trinn

Asynkrone Lambda-oppkall er en gratis leksjon i Serverløs utvikling med AWS Lambda på CoddyKit. Dette er leksjon 1 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 utvikling med AWS Lambda, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Serverløs utvikling med AWS Lambda inneholder totalt 4 leksjoner.

Hva er asynkron påkalling?

Velkommen! I serverløse løsninger kan funksjoner påkalles på ulike måter. En asynkron påkalling betyr at den som påkaller funksjonen, ikke venter på at funksjonen skal bli ferdig.

Tenk på det som å sende et brev: Du legger det i postkassen og venter ikke på at mottakeren skal lese det. Du stoler på at det blir levert og behandlet senere.

Synkron kontra asynkron: Den viktigste forskjellen

Når du påkaller en Lambda-funksjon synkront, venter du umiddelbart på et svar. Applikasjonen settes på pause til Lambda returnerer et resultat eller en feil.

Ved asynkron påkalling legger Lambda hendelsen i en intern kø og returnerer umiddelbart en bekreftelse på at påkallingen var vellykket. Selve funksjonskjøringen skjer i bakgrunnen.

Slik fungerer asynkron påkalling

Når en hendelse utløser en asynkron Lambda-påkalling:

  • Lambda mottar hendelsen fra den som påkaller funksjonen (for eksempel S3 eller SNS).
  • Hendelsen legges i en intern kø.
  • Lambda sender umiddelbart et vellykket svar til den som påkalte funksjonen.
  • Senere henter Lambda hendelsen fra køen og påkaller funksjonen.
  • Funksjonen behandler hendelsen, og eventuelle utdata forkastes.

Påkallingstyper i praksis

Når du påkaller en Lambda-funksjon direkte via AWS SDK eller CLI, angir du en InvocationType-parameter:

  • RequestResponse: For synkrone påkallinger (du venter på et svar).
  • Event: For asynkrone påkallinger (send og glem).
  • DryRun: For å validere parametere uten å påkalle funksjonen.

Mange AWS-tjenester (for eksempel S3, SNS og EventBridge) påkaller Lambda asynkront når de er konfigurert som utløsere.

Fordeler: Frikobling og skalerbarhet

Asynkrone påkallinger gir betydelige fordeler:

  • Frikobling: Den som påkaller funksjonen, er ikke avhengig av et umiddelbart svar. Arbeidet kan fortsette uten å vente.
  • Skalerbarhet: Lambda kan bufre hendelser i den interne køen ved trafikkøkninger. Dette hindrer at funksjonen blir overbelastet, og sikrer at hendelsene til slutt blir behandlet.
  • Robusthet: Hvis funksjonen mislykkes, kan Lambda automatisk prøve påkallingen på nytt.

Ideelt for langvarige oppgaver

Asynkron påkalling passer perfekt for oppgaver som kan ta tid å fullføre, for eksempel:

  • Behandle store filer som er lastet opp til S3.
  • Sende e-postvarsler.
  • Konvertere videoer.
  • Oppdatere flere databaser.

Klienten trenger ikke å vente på disse operasjonene, noe som gir en bedre brukeropplevelse og mer responsiv applikasjon.

Forklaring av asynkrone nye forsøk

Som standard prøver Lambda automatisk påkallingen to ganger på nytt hvis en asynkront påkalt Lambda-funksjon mislykkes, med en eksponentielt økende ventetid mellom forsøkene.

Denne innebygde mekanismen for nye forsøk gjør serverløse applikasjoner mer pålitelige ved å håndtere midlertidige feil uten manuell inngripen.

Konfigurere atferd ved nye forsøk

Du kan tilpasse atferden ved nye forsøk for asynkrone påkallinger:

  • Maksimal hendelsesalder: Hvor lenge Lambda skal beholde en hendelse i køen før den forkastes (standard: 6 timer).
  • Maksimalt antall nye forsøk: Hvor mange ganger Lambda skal prøve funksjonen på nytt (0 til 2 forsøk).

Disse innstillingene bidrar til å kontrollere hvor lenge systemet forsøker å behandle en mislykket hendelse.

Eksempel: Behandle et opplastet bilde

Se for deg at en bruker laster opp et bilde til en S3-bøtte. Du vil endre størrelsen på bildet og legge til et vannmerke.

Du kan konfigurere S3-bøtten til å utløse en Lambda-funksjon hver gang et nytt bilde lastes opp. S3 påkaller Lambda-funksjonen asynkront, og funksjonen behandler deretter bildet. Brukeren trenger ikke å vente på at størrelsesendringen skal bli ferdig.

Lambda-funksjon for asynkron behandling

Her er en enkel Python-Lambda-funksjon som kan påkalles asynkront. Den simulerer en langvarig oppgave.

Ved asynkron påkalling venter ikke den som påkaller funksjonen, på at time.sleep() skal bli ferdig.

import json
import time

def lambda_handler(event, context):
    print("Received event:", json.dumps(event, indent=2))

    # Simulate a long-running task
    print("Starting long-running task...")
    time.sleep(5)  # Pause for 5 seconds
    print("Task completed!")

    # For async invocations, the return value is usually ignored
    return {
        'statusCode': 200,
        'body': json.dumps('Processing complete!')
    }

Rask kontroll av asynkronitet

Du har lært om de grunnleggende konseptene for asynkrone Lambda-påkallinger.

Hva er den viktigste fordelen ved å bruke asynkrone Lambda-påkallinger?

Oppsummering: Asynkron kraft

Godt jobbet! Du har fått kontroll på det grunnleggende ved asynkrone Lambda-påkallinger.

  • De lar den som påkaller funksjonen, sende hendelser uten å vente på svar.
  • Lambda bruker en intern kø til behandlingen.
  • Fordelene omfatter frikobling, skalerbarhet og håndtering av langvarige oppgaver.
  • Innebygde mekanismer for nye forsøk øker påliteligheten.

Dette mønsteret er grunnleggende for å bygge robuste og skalerbare hendelsesstyrte serverløse applikasjoner. Deretter skal vi se på hvordan du effektivt håndterer feil med køer for meldinger som ikke kan leveres!

Gratis å komme i gang

Lær deg Serverløs utvikling med AWS Lambda 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 «Asynkrone Lambda-oppkall» gratis?

Ja – hele teksten i «Asynkrone Lambda-oppkall» 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 utvikling med AWS Lambda-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Serverløs utvikling med AWS Lambda inneholder totalt 4 leksjoner.

Hva lærer jeg i «Asynkrone Lambda-oppkall»?

Lær detaljene ved asynkrone Lambda-oppkall, og forstå hendelseskilder, nye forsøk og fordelene ved langvarige prosesser eller batch-prosesser Du øver på Serverløs utvikling med AWS Lambda 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 utvikling med AWS Lambda?

Ingen tidligere erfaring er nødvendig. Serverløs utvikling med AWS Lambda 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 1 av 4.

Hvor lang tid tar leksjonen «Asynkrone Lambda-oppkall»?

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 utvikling med AWS Lambda-leksjonen?

Ja. Alle Serverløs utvikling med AWS Lambda-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. Asynkrone Lambda-oppkall
  2. Dead Letter Queues (DLQ) ved feil
  3. Orkestrering med AWS Step Functions
  4. Fan-out-mønsteret med SNS
← Tilbake til Serverløs utvikling med AWS Lambda