Step Functions: serverloze workflows orkestreren
Definieer workflows met meerdere stappen als state machines in Step Functions, verwerk fouten met catch- en retry-blokken en integreer native SDK-integraties.
Step Functions: serverloze workflows orkestreren is een gratis AWS Solutions Architect-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS Solutions Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS Solutions Architect bevat in totaal 4 lessen.
Wat zijn AWS Step Functions?
AWS Step Functions is een volledig beheerde service voor workfloworkestratie die gedistribueerde toepassingen coördineert als een reeks stappen die in een statusmachine zijn gedefinieerd. Elke stap in de statusmachine is een status — een Lambda-aanroep, een AWS SDK-aanroep, een wachttijd, een parallelle vertakking of een keuze (if/else). Step Functions beheert de status, handelt nieuwe pogingen af en biedt een visuele uitvoeringsgeschiedenis. Daardoor hoef je geen orkestratielogica in toepassingscode te schrijven.
Amazon States Language (ASL)
Statusmachines worden gedefinieerd in Amazon States Language (ASL), een op JSON gebaseerde taal. Elke status heeft een Type (Task, Choice, Wait, Parallel, Map, Pass, Succeed, Fail) en gaat over naar een Next-status of wordt beëindigd. Het veld Resource van een Task-status geeft de AWS-service aan die moet worden aangeroepen — een ARN voor Lambda of een geoptimaliseerde ARN voor service-integratie voor meer dan 200 AWS-services, zonder tussenliggende Lambda.
{
'Comment': 'Order processing workflow',
'StartAt': 'ValidateOrder',
'States': {
'ValidateOrder': {
'Type': 'Task',
'Resource': 'arn:aws:lambda:us-east-1:123456789012:function:ValidateOrder',
'Next': 'ChargePayment',
'Retry': [{'ErrorEquals': ['Lambda.ServiceException'], 'IntervalSeconds': 2, 'MaxAttempts': 3}]
},
'ChargePayment': {
'Type': 'Task',
'Resource': 'arn:aws:states:::dynamodb:putItem',
'Parameters': {'TableName': 'Orders', 'Item': {'orderId': {'S.$': '$.orderId'}}},
'End': true
}
}
}Standaard- versus Express-workflows
Step Functions heeft twee typen workflows. Standaardworkflows: duurzaam, met een maximale duur van 1 jaar, uitvoeringssemantiek voor precies één uitvoering en een volledige uitvoeringsgeschiedenis die 90 dagen wordt bewaard — geschikt voor langlopende bedrijfsprocessen. Express-workflows: hoge verwerkingscapaciteit (meer dan 100.000 uitvoeringen per seconde), een maximale duur van 5 minuten, semantiek voor minimaal één uitvoering en logboeken die naar CloudWatch worden verzonden — geschikt voor realtimegebeurtenisverwerking en IoT-gegevenspijplijnen. Kies op basis van duur, verwerkingscapaciteit en vereisten voor idempotentie.
# Create a Standard workflow state machine
aws stepfunctions create-state-machine \
--name OrderProcessing \
--definition file://order-state-machine.json \
--role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
--type STANDARD
# Create an Express workflow for high-throughput
aws stepfunctions create-state-machine \
--name ClickstreamProcess \
--definition file://click-state-machine.json \
--role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
--type EXPRESSTaakstatussen en service-integraties
Task-statussen in Step Functions ondersteunen twee integratiepatronen. Request-Response: roep een AWS-service aan en ga onmiddellijk verder (fire-and-forget). Sync Integration: roep een service aan en wacht totdat deze is voltooid voordat je naar de volgende status gaat (bijvoorbeeld wachten tot een ECS-taak is voltooid, een Glue-taak klaar is of een SageMaker-trainingsjob is beëindigd). Voor synchrone integratie wordt het achtervoegsel :sync:2 gebruikt in de ARN van de resource. Hierdoor is pollinglogica niet nodig.
# Sync integration: start Glue job and wait for completion
'RunGlueETL': {
'Type': 'Task',
'Resource': 'arn:aws:states:::glue:startJobRun.sync:2',
'Parameters': {
'JobName': 'clean-sales'
},
'Next': 'RunAthenaQuery'
}Keuzestatussen voor vertakkingslogica
Een Choice-status implementeert voorwaardelijke vertakking — het workflow-equivalent van een if/else- of switch-instructie. Je definieert Choices als een array met voorwaarden; de eerste overeenkomende voorwaarde bepaalt de volgende status. Een Default-status handelt gevallen af waarvoor geen overeenkomst is gevonden. Met keuzestatussen kun je een bestelling naar verschillende afhandelingspaden routeren op basis van producttype, klantniveau of betaalstatus, zonder voorwaardelijke Lambda-logica te schrijven.
'RouteByOrderType': {
'Type': 'Choice',
'Choices': [
{
'Variable': '$.orderType',
'StringEquals': 'DIGITAL',
'Next': 'FulfillDigital'
},
{
'Variable': '$.orderType',
'StringEquals': 'PHYSICAL',
'Next': 'FulfillPhysical'
}
],
'Default': 'HandleUnknownType'
}Parallelle en Map-statussen
Een Parallel-status voert meerdere vertakkingen gelijktijdig uit en wacht totdat ze allemaal zijn voltooid voordat de workflow verdergaat — handig voor gelijktijdige taken, zoals tegelijkertijd een kredietcontrole en een voorraadcontrole uitvoeren. Een Map-status doorloopt een array in de invoer en past dezelfde reeks statussen parallel toe op elk element — handig voor het verwerken van een batch items die door een vorige stap is teruggegeven, zoals het wijzigen van het formaat van meerdere geüploade afbeeldingen.
'ProcessImages': {
'Type': 'Map',
'ItemsPath': '$.imageKeys',
'MaxConcurrency': 10,
'Iterator': {
'StartAt': 'ResizeImage',
'States': {
'ResizeImage': {
'Type': 'Task',
'Resource': 'arn:aws:lambda:us-east-1:123:function:ResizeImage',
'End': true
}
}
},
'Next': 'NotifyComplete'
}Foutafhandeling: Catch en Retry
Elke Task-status in Step Functions kan blokken Retry en Catch bevatten voor robuuste foutafhandeling. Retry geeft aan welke fouttypen automatisch opnieuw proberen activeren, met configureerbare waarden voor IntervalSeconds, MaxAttempts en BackoffRate (vermenigvuldigingsfactor voor exponentiële wachttijden tussen pogingen). Catch geeft terugvalstatussen op voor fouten die niet kunnen worden hersteld. Met deze declaratieve foutafhandeling vermijd je herhaalde try/catch-blokken in Lambda-functies.
'ChargeCard': {
'Type': 'Task',
'Resource': 'arn:aws:lambda:us-east-1:123:function:ChargeCard',
'Retry': [{
'ErrorEquals': ['Lambda.ServiceException', 'States.TaskFailed'],
'IntervalSeconds': 2,
'MaxAttempts': 3,
'BackoffRate': 2.0
}],
'Catch': [{
'ErrorEquals': ['PaymentDeclined'],
'Next': 'NotifyPaymentFailed',
'ResultPath': '$.error'
}],
'Next': 'FulfillOrder'
}Wachtstatussen en callbacks
Een Wait-status pauzeert de uitvoering van een workflow gedurende een vaste tijd of totdat een bepaald tijdstip is bereikt. Een Callback-patroon (met .waitForTaskToken) pauzeert de uitvoering totdat een extern systeem met het token SendTaskSuccess of SendTaskFailure aanroept. Zo modelleert Step Functions goedkeuringsstappen door mensen: stuur een e-mail met het taaktoken en hervat de workflow wanneer iemand in zijn e-mailprogramma op een koppeling voor goedkeuren of afwijzen klikt.
# Callback pattern: wait for human approval
'RequestApproval': {
'Type': 'Task',
'Resource': 'arn:aws:states:::sqs:sendMessage.waitForTaskToken',
'Parameters': {
'QueueUrl': 'https://sqs.us-east-1.amazonaws.com/123/approvals',
'MessageBody': {
'taskToken.$': '$$.Task.Token',
'orderId.$': '$.orderId'
}
},
'Next': 'ProcessApproval'
}Integratie van Step Functions met EventBridge
Uitvoeringen van Step Functions kunnen worden gestart door EventBridge-regels, zodat je eenvoudig workflows kunt activeren als reactie op gebeurtenissen van AWS-services. Een S3-gebeurtenis ObjectCreated kan bijvoorbeeld een EventBridge-regel activeren die een workflow voor beeldverwerking in Step Functions start. Step Functions kan ook eigen gebeurtenissen naar EventBridge publiceren wanneer uitvoeringen slagen of mislukken. Zo kun je monitoring en waarschuwingen voor vervolgprocessen inschakelen zonder de Step Functions-API regelmatig te controleren.
Uitvoeringen van Step Functions monitoren
De Step Functions-console biedt een visueel diagram van de workflowuitvoering waarop je in realtime met kleurcodering ziet welke status is geslaagd, welke wordt uitgevoerd en welke is mislukt. Elke uitvoering bewaart de volledige geschiedenis van invoer en uitvoer voor standaardworkflows (bewaartermijn van 90 dagen). Voor Express-workflows worden logboeken naar CloudWatch Logs verzonden. Gebruik X-Ray-tracering om de end-to-end-aanvraaglatentie te traceren voor Lambda-functies en andere services die binnen de workflow worden aangeroepen.
# List recent executions and check status
aws stepfunctions list-executions \
--state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:OrderProcessing \
--status-filter FAILED
# Describe a specific failed execution for debugging
aws stepfunctions describe-execution \
--execution-arn arn:aws:states:us-east-1:123456789012:execution:OrderProcessing:exec-001Step Functions versus SQS versus EventBridge
Weten wanneer je Step Functions, SQS of EventBridge gebruikt, is een veelvoorkomend beslispunt op examens. Gebruik Step Functions wanneer je zichtbare, statusgebaseerde orkestratie nodig hebt voor een proces met meerdere stappen, inclusief foutafhandeling en vertakkingen. Gebruik SQS voor betrouwbare asynchrone berichtenuitwisseling van punt tot punt tussen twee services, met nieuwe pogingen via de zichtbaarheids-time-out. Gebruik EventBridge voor routering van gebeurtenissen naar meerdere abonnees op basis van inhoudspatronen. Een Step Functions-workflow kan alle drie integreren: wachten op een SQS-bericht via een taaktoken, de voltooiing publiceren naar EventBridge en Lambda- en SDK-aanroepen aan elkaar koppelen.
Snelle controle
Test je begrip van de concepten uit deze les voor AWS Solutions Architect (SAA-C03).
Samenvatting van de les
In deze les heb je geleerd dat Step Functions werkstromen orkestreert als toestandsmachines met Task-, Choice-, Parallel-, Map-, Wait- en Catch-toestanden, dat Standard Workflows tot één jaar ondersteunen met een volledige uitvoeringsgeschiedenis, terwijl Express Workflows geschikt zijn voor werklasten met een hoge doorvoer en een duur van minder dan vijf minuten, en dat het Callback-patroon met taaktokens stappen voor goedkeuring door mensen mogelijk maakt. Hierna bekijken we Kinesis Data Streams voor realtimegebeurtenisverwerking met hoge doorvoer.
Leer AWS Solutions Architect 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
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Step Functions: serverloze workflows orkestreren” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS Solutions Architect, waaronder “Step Functions: serverloze workflows orkestreren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS Solutions Architect bevat in totaal 4 lessen.
Wat leer ik in “Step Functions: serverloze workflows orkestreren”?
Definieer workflows met meerdere stappen als state machines in Step Functions, verwerk fouten met catch- en retry-blokken en integreer native SDK-integraties. Je oefent met AWS Solutions Architect 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 AWS Solutions Architect te beginnen?
Ervaring vooraf is niet nodig. AWS Solutions Architect 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 “Step Functions: serverloze workflows orkestreren”?
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 AWS Solutions Architect?
Ja. Elke les over AWS Solutions Architect 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
- EventBridge: event bus en regels
- Step Functions: serverloze workflows orkestreren
- Kinesis Data Streams voor realtimegebeurtenisverwerking
- Choreografie versus orkestratiepatronen