State machines bouwen
Ontwerp en implementeer verschillende typen state machines (Standard, Express) voor uiteenlopende gebruiksscenario's, met integratie van Lambda en andere services.
State machines bouwen is een gratis Serverloze backend met AWS Lambda en API Gateway-les op CoddyKit. Dit is les 2 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.
Je eerste workflow bouwen
Welkom terug! In de vorige les hebben we geleerd wat AWS Step Functions zijn. Nu gaan we aan de slag met het bouwen ervan!
Je leert hoe je verschillende stappen (statussen) definieert en met elkaar verbindt om krachtige, geautomatiseerde workflows te maken. We bekijken ook de twee belangrijkste typen workflows: Standard en Express.
Anatomie van een statusmachine
Een statusmachine van Step Functions is een workflow die een reeks stappen definieert die statussen worden genoemd. Elke status voert een specifieke taak uit of neemt een beslissing.
- Statussen: De afzonderlijke stappen in je workflow.
- Overgangen: Regels die bepalen welke status volgt.
- Invoer/uitvoer: Gegevens die tussen statussen worden doorgegeven.
Zie het als een stroomdiagram, maar dan uitgevoerd door AWS!
Veelgebruikte statustypen
Step Functions biedt verschillende statustypen om je logica op te bouwen:
- Task: Voert werk uit door een service aan te roepen, bijvoorbeeld Lambda of ECS.
- Pass: Geeft de invoer door aan de uitvoer zonder werk uit te voeren. Handig voor foutopsporing of structurering.
- Choice: Voegt vertakkingslogica toe (if/else).
- Wait: Pauzeert de uitvoering gedurende een opgegeven tijd of tot een specifiek tijdstip.
- Succeed/Fail: Beëindigt de uitvoering met succes of met een fout.
- Parallel: Voert meerdere vertakkingen parallel uit.
Een eenvoudige Pass-status definiëren
Laten we beginnen met een eenvoudige Pass-status. Deze status neemt de invoer eenvoudig over en geeft die door als uitvoer. Je gebruikt deze vaak voor tests of om je statusmachine te structureren.
Statusmachines worden gedefinieerd met Amazon States Language (ASL), een op JSON gebaseerde structuur.
ASL-voorbeeld van een Pass-status
Zo ziet een Pass-status eruit in ASL. Hierin worden de naam en het type van de status gedefinieerd, evenals de volgende stap.
{ "Comment": "A simple Pass state machine",
"StartAt": "HelloWorld",
"States": {
"HelloWorld": {
"Type": "Pass",
"Result": {
"message": "Hello from Step Functions!"
},
"End": true
}
}
}Standard-workflows: de duurzame keuze
AWS Step Functions biedt twee typen workflows: Standard en Express.
Standard-workflows zijn ideaal voor langdurige, duurzame en controleerbare workflows. Ze kunnen maximaal een jaar actief blijven!
- Duurzaamheid: Bewaart de volledige uitvoeringsgeschiedenis maximaal 90 dagen.
- Controleerbaarheid: Elke stap en invoer/uitvoer is eenvoudig te volgen.
- Gebruiksscenario's: Bestellingen afhandelen, gegevensverwerkingspijplijnen en goedkeuringen door mensen.
Express-workflows: snelheid en schaalbaarheid
Express-workflows zijn ontworpen voor workloads met een groot volume die door gebeurtenissen worden aangestuurd. Ze zijn veel sneller en kostenefficiënter voor taken van korte duur.
- Snelheid: kunnen duizenden uitvoeringen per seconde voltooien.
- Kosten: de prijs wordt per uitvoering en tijdsduur berekend en is vaak lager voor korte taken.
- Geschiedenis: de uitvoeringsgeschiedenis is beperkt (maximaal 90 dagen in CloudWatch Logs, niet rechtstreeks in de Step Functions-console).
- Toepassingen: orkestratie van microservices, realtime verwerking van streaminggegevens en verwerking voor mobiele backends.
Lambda integreren: de Task-status
Een van de meest voorkomende manieren om werk uit te voeren in een statusmachine is een Task-status gebruiken om een AWS Lambda-functie aan te roepen.
Het veld Resource in de ASL bevat de ARN van de Lambda-functie die moet worden aangeroepen.
Voorbeeld van een Lambda voor Step Functions
Deze eenvoudige Python Lambda-functie ontvangt een gebeurtenis (invoer van Step Functions) en retourneert een aangepast bericht. Step Functions geeft de uitvoer door aan de volgende status.
import json
def lambda_handler(event, context):
print(f"Received event: {json.dumps(event)}")
name = event.get('name', 'World')
return {
'statusCode': 200,
'body': f"Hello, {name}! This is from Lambda."
}Uitdaging: type workflow
Je moet een workflow bouwen voor het verwerken van duizenden binnenkomende IoT-sensormetingen per minuut. Het verwerken van elke meting duurt minder dan 1 seconde.
Samenvatting: workflows bouwen
Goed gedaan! Je hebt de basisprincipes geleerd van het bouwen van AWS Step Functions-statusmachines:
- Statusmachines worden gedefinieerd door een reeks statussen en overgangen.
- Belangrijke statustypen zijn Task, Pass, Choice en Wait.
- Standard-workflows zijn bedoeld voor langlopende, controleerbare processen.
- Express-workflows zijn bedoeld voor taken met een groot volume en een korte duur.
- Je kunt Lambda-functies integreren met een
Task-status.
Vervolgens bekijken we hoe je complexe workflows orkestreert!
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 “State machines bouwen” gratis?
Ja — de volledige tekst van “State machines bouwen” 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 “State machines bouwen”?
Ontwerp en implementeer verschillende typen state machines (Standard, Express) voor uiteenlopende gebruiksscenario's, met integratie van Lambda en andere services. 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 2 van 4.
Hoe lang duurt de les “State machines bouwen”?
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
- Inleiding tot AWS Step Functions
- State machines bouwen
- Complexe workflows orkestreren
- Foutafhandeling en retries in state machines