Asynchrone Lambda-aanroepen
Beheers de bijzonderheden van asynchrone Lambda-aanroepen en krijg inzicht in eventbronnen, retries en de voordelen voor langlopende of batchprocessen
Asynchrone Lambda-aanroepen is een gratis Serverloze ontwikkeling met AWS Lambda-les op CoddyKit. Dit is les 1 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 ontwikkeling met AWS Lambda. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Serverloze ontwikkeling met AWS Lambda bevat in totaal 4 lessen.
Wat is asynchrone aanroep?
Welkom! In serverloze omgevingen kunnen functies op verschillende manieren worden aangeroepen. Bij een asynchrone aanroep wacht de aanroeper niet totdat de functie klaar is met uitvoeren.
Je kunt het vergelijken met het versturen van een brief: je doet de brief op de post en wacht niet totdat de ontvanger deze heeft gelezen. Je vertrouwt erop dat de brief wordt bezorgd en later wordt verwerkt.
Synchroon versus asynchroon: het belangrijkste verschil
Wanneer je een Lambda-functie synchroon aanroept, wacht je onmiddellijk op een antwoord. Je applicatie pauzeert totdat Lambda een resultaat of fout retourneert.
Bij een asynchrone aanroep plaatst Lambda de gebeurtenis in een interne wachtrij en retourneert het onmiddellijk een succesbericht aan de aanroeper. De daadwerkelijke uitvoering van de functie vindt op de achtergrond plaats.
Hoe een asynchrone aanroep werkt
Wanneer een gebeurtenis een asynchrone Lambda-aanroep activeert:
- Lambda ontvangt de gebeurtenis van de aanroeper (bijvoorbeeld S3 of SNS).
- Het plaatst de gebeurtenis in een interne wachtrij.
- Lambda stuurt onmiddellijk een succesvolle reactie naar de aanroeper.
- Later haalt Lambda de gebeurtenis uit de wachtrij en roept het je functie aan.
- De functie verwerkt de gebeurtenis en eventuele uitvoer wordt verwijderd.
Aanroeptypen in de praktijk
Wanneer je een Lambda-functie rechtstreeks aanroept via de AWS SDK of CLI, geef je een parameter InvocationType op:
RequestResponse: voor synchrone aanroepen (je wacht op een antwoord).Event: voor asynchrone aanroepen (starten en vergeten).DryRun: om parameters te valideren zonder de functie aan te roepen.
Veel AWS-services (zoals S3, SNS en EventBridge) roepen Lambda standaard asynchroon aan wanneer ze als triggers zijn geconfigureerd.
Voordelen: ontkoppeling en schaalbaarheid
Asynchrone aanroepen bieden belangrijke voordelen:
- Ontkoppeling: de aanroeper is niet afhankelijk van het onmiddellijke antwoord van de functie. De aanroeper kan doorgaan zonder te wachten.
- Schaalbaarheid: Lambda kan gebeurtenissen tijdens verkeerspieken bufferen in de interne wachtrij. Zo voorkom je dat je functie wordt overbelast en zorg je ervoor dat gebeurtenissen uiteindelijk worden verwerkt.
- Veerkracht: als je functie mislukt, kan Lambda de aanroep automatisch opnieuw proberen.
Ideaal voor langlopende taken
Asynchrone aanroepen zijn ideaal voor taken die enige tijd kunnen duren, zoals:
- Grote bestanden verwerken die naar S3 zijn geüpload.
- E-mailmeldingen versturen.
- Video's transcoderen.
- Meerdere databases bijwerken.
De client hoeft niet op deze bewerkingen te wachten, waardoor de gebruikerservaring en reactiesnelheid van de applicatie verbeteren.
Asynchrone nieuwe pogingen uitgelegd
Standaard probeert Lambda een asynchroon aangeroepen functie automatisch twee keer opnieuw aan te roepen als deze mislukt, met een exponentiële wachttijd tussen de pogingen.
Dit ingebouwde mechanisme voor nieuwe pogingen vergroot de betrouwbaarheid van je serverloze applicaties door tijdelijke fouten zonder handmatige tussenkomst af te handelen.
Gedrag van nieuwe pogingen configureren
Je kunt het gedrag van nieuwe pogingen voor asynchrone aanroepen aanpassen:
- Maximale leeftijd van een gebeurtenis: hoelang Lambda een gebeurtenis in de wachtrij moet bewaren voordat deze wordt verwijderd (standaard: 6 uur).
- Maximumaantal nieuwe pogingen: hoe vaak Lambda de functie opnieuw moet proberen (0 tot 2 pogingen).
Met deze instellingen bepaal je hoelang je systeem probeert een mislukte gebeurtenis te verwerken.
Voorbeeld: een geüploade afbeelding verwerken
Stel dat een gebruiker een afbeelding uploadt naar een S3-bucket. Je wilt de afbeelding verkleinen en er een watermerk aan toevoegen.
Je kunt de S3-bucket zo configureren dat deze telkens wanneer een nieuwe afbeelding wordt geüpload een Lambda-functie activeert. S3 roept je Lambda vervolgens asynchroon aan, waarna de functie de afbeelding verwerkt. De gebruiker hoeft niet te wachten totdat het verkleinen is voltooid.
Lambda-functie voor asynchrone verwerking
Hier is een eenvoudige Python-Lambda-functie die asynchroon kan worden aangeroepen. De functie simuleert een langlopende taak.
Bij een asynchrone aanroep wacht de aanroeper niet totdat time.sleep() is voltooid.
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!')
}Korte controle over asynchrone aanroepen
Je hebt de belangrijkste concepten van asynchrone Lambda-aanroepen geleerd.
Wat is een belangrijk voordeel van het gebruik van asynchrone Lambda-aanroepen?
Samenvatting: de kracht van asynchrone aanroepen
Goed gedaan! Je beheerst de basis van asynchrone Lambda-aanroepen.
- Ze stellen aanroepers in staat gebeurtenissen te starten en te vergeten.
- Lambda gebruikt een interne wachtrij voor de verwerking.
- Voordelen zijn ontkoppeling, schaalbaarheid en het verwerken van langlopende taken.
- Ingebouwde mechanismen voor nieuwe pogingen vergroten de betrouwbaarheid.
Dit patroon is essentieel voor het bouwen van robuuste en schaalbare gebeurtenisgestuurde serverloze applicaties. Vervolgens bekijken we hoe je fouten effectief afhandelt met Dead Letter Queues.
Leer Serverloze ontwikkeling met AWS Lambda 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 “Asynchrone Lambda-aanroepen” gratis?
Ja — de volledige tekst van “Asynchrone Lambda-aanroepen” 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 ontwikkeling met AWS Lambda wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Serverloze ontwikkeling met AWS Lambda bevat in totaal 4 lessen.
Wat leer ik in “Asynchrone Lambda-aanroepen”?
Beheers de bijzonderheden van asynchrone Lambda-aanroepen en krijg inzicht in eventbronnen, retries en de voordelen voor langlopende of batchprocessen Je oefent met Serverloze ontwikkeling met AWS Lambda 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 ontwikkeling met AWS Lambda te beginnen?
Ervaring vooraf is niet nodig. Serverloze ontwikkeling met AWS Lambda 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 1 van 4.
Hoe lang duurt de les “Asynchrone Lambda-aanroepen”?
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 ontwikkeling met AWS Lambda?
Ja. Elke les over Serverloze ontwikkeling met AWS Lambda 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
- Asynchrone Lambda-aanroepen
- Dead Letter Queues (DLQ) voor fouten
- Orchestratie met AWS Step Functions
- Het fan-out-patroon met SNS