Step Functions: Orchestrierung serverloser Workflows
Definieren Sie mehrstufige Workflows als Zustandsautomaten in Step Functions, behandeln Sie Fehler mit Catch- und Retry-Blöcken und integrieren Sie native SDK-Integrationen.
Step Functions: Orchestrierung serverloser Workflows ist eine kostenlose AWS Solutions Architect-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AWS Solutions Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.
Was sind AWS Step Functions?
AWS Step Functions ist ein vollständig verwalteter Service zur Workflow-Orchestrierung, der verteilte Anwendungen als eine Reihe von Schritten koordiniert, die in einem Zustandsautomaten definiert sind. Jeder Schritt im Zustandsautomaten ist ein Zustand — ein Lambda-Aufruf, ein AWS-SDK-Aufruf, eine Wartezeit, ein paralleler Zweig oder eine Auswahl (if/else). Step Functions verwaltet den Zustand, behandelt Wiederholungen und stellt eine visuelle Ausführungshistorie bereit. Dadurch entfällt die Notwendigkeit, Orchestrierungslogik im Anwendungscode zu schreiben.
Amazon States Language (ASL)
Zustandsautomaten werden in der JSON-basierten Amazon States Language (ASL) definiert. Jeder Zustand verfügt über einen Type (Task, Choice, Wait, Parallel, Map, Pass, Succeed, Fail) und wechselt zu einem Next-Zustand oder endet. Das Feld Resource eines Task-Zustands gibt den aufzurufenden AWS-Service an — einen ARN für Lambda oder einen optimierten ARN für Service-Integrationen mit mehr als 200 AWS-Services, ohne dass eine zwischengeschaltete Lambda-Funktion erforderlich ist.
{
'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
}
}
}Standard- und Express-Workflows
Step Functions bietet zwei Workflow-Typen. Standard Workflows: dauerhaft, mit einer Laufzeit von bis zu 1 Jahr, genau-einmal-Ausführungssemantik und einer vollständigen, 90 Tage lang gespeicherten Ausführungshistorie — geeignet für lang laufende Geschäftsprozesse. Express Workflows: hoher Durchsatz (über 100.000 Ausführungen pro Sekunde), Laufzeit von bis zu 5 Minuten, Mindestens-einmal-Semantik und an CloudWatch gesendete Logs — geeignet für die Echtzeitverarbeitung von Events und IoT-Datenpipelines. Treffen Sie Ihre Wahl anhand der Anforderungen an Laufzeit, Durchsatz und Idempotenz.
# 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 EXPRESSTask-Zustände und Service-Integrationen
Task-Zustände in Step Functions unterstützen zwei Integrationsmuster. Request-Response: Rufen Sie einen AWS-Service auf und fahren Sie sofort fort (Fire-and-forget). Sync Integration: Rufen Sie einen Service auf und warten Sie, bis dieser abgeschlossen ist, bevor Sie zum nächsten Zustand wechseln (z. B. auf den Abschluss eines ECS-Tasks, eines Glue-Jobs oder eines SageMaker-Trainingsjobs). Die synchrone Integration verwendet das Suffix :sync:2 im Ressourcen-ARN und macht eine Polling-Logik überflüssig.
# 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'
}Choice-Zustände für Verzweigungslogik
Ein Choice-Zustand implementiert eine bedingte Verzweigung — das Workflow-Gegenstück zu einer if/else- oder switch-Anweisung. Sie definieren Choices als Array von Bedingungen; die erste übereinstimmende Bedingung bestimmt den nächsten Zustand. Ein Default-Zustand behandelt nicht übereinstimmende Fälle. Choice-Zustände ermöglichen es Ihnen, eine Bestellung abhängig von Produkttyp, Kundenkategorie oder Zahlungsstatus auf unterschiedliche Erfüllungsabläufe zu verteilen, ohne bedingte Lambda-Logik schreiben zu müssen.
'RouteByOrderType': {
'Type': 'Choice',
'Choices': [
{
'Variable': '$.orderType',
'StringEquals': 'DIGITAL',
'Next': 'FulfillDigital'
},
{
'Variable': '$.orderType',
'StringEquals': 'PHYSICAL',
'Next': 'FulfillPhysical'
}
],
'Default': 'HandleUnknownType'
}Parallel- und Map-Zustände
Ein Parallel-Zustand führt mehrere Zweige gleichzeitig aus und wartet, bis alle abgeschlossen sind, bevor der Workflow fortgesetzt wird — nützlich für gleichzeitige Aufgaben wie eine Bonitäts- und eine Bestandsprüfung. Ein Map-Zustand durchläuft ein Array in der Eingabe und wendet auf jedes Element denselben Satz von Zuständen parallel an — nützlich für die Verarbeitung eines Batches von Elementen, die von einem vorherigen Schritt zurückgegeben wurden, beispielsweise zum Ändern der Größe mehrerer hochgeladener Bilder.
'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'
}Fehlerbehandlung: Catch und Retry
Jeder Task-Zustand in Step Functions kann für eine robuste Fehlerbehandlung über Retry- und Catch-Blöcke verfügen. Retry legt fest, welche Fehlertypen automatische Wiederholungen auslösen, und konfiguriert IntervalSeconds, MaxAttempts sowie BackoffRate (Multiplikator für den exponentiellen Backoff). Catch gibt Ersatz-Zustände für nicht behebbare Fehler an. Diese deklarative Fehlerbehandlung vermeidet sich wiederholende try/catch-Blöcke in Lambda-Funktionen.
'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'
}Wait-Zustände und Callbacks
Ein Wait-Zustand pausiert die Workflow-Ausführung für eine festgelegte Dauer oder bis zu einem bestimmten Zeitstempel. Ein Callback-Muster (mit .waitForTaskToken) pausiert die Ausführung, bis ein externes System mit dem Token SendTaskSuccess oder SendTaskFailure aufruft. So modelliert Step Functions Schritte zur menschlichen Genehmigung: Senden Sie eine E-Mail mit dem Task-Token, und der Workflow wird fortgesetzt, sobald eine Person in ihrem E-Mail-Programm auf den Link zum Genehmigen oder Ablehnen klickt.
# 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'
}Integration von Step Functions und EventBridge
Ausführungen von Step Functions können durch EventBridge-Regeln gestartet werden. So lassen sich Workflows einfach als Reaktion auf AWS-Service-Events auslösen. Beispielsweise löst ein S3-ObjectCreated-Event eine EventBridge-Regel aus, die einen Workflow zur Bildverarbeitung in Step Functions startet. Step Functions kann außerdem eigene Events an EventBridge veröffentlichen, wenn Ausführungen erfolgreich sind oder fehlschlagen. Dadurch werden nachgelagerte Überwachung und Alarmierung ohne Polling der Step-Functions-API ermöglicht.
Ausführungen von Step Functions überwachen
Die Step-Functions-Konsole stellt ein visuelles Diagramm der Workflow-Ausführung bereit, das in Echtzeit farblich kennzeichnet, welcher Zustand erfolgreich war, gerade ausgeführt wird oder fehlgeschlagen ist. Für Standard-Workflows wird die vollständige Eingabe-/Ausgabehistorie jeder Ausführung 90 Tage lang gespeichert. Bei Express-Workflows werden die Logs an CloudWatch Logs gesendet. Verwenden Sie X-Ray-Tracing, um die Latenz von Anfragen über Lambda-Funktionen und andere innerhalb des Workflows aufgerufene Services hinweg zu verfolgen.
# 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 vs. SQS vs. EventBridge
Zu wissen, wann Step Functions gegenüber SQS oder EventBridge eingesetzt werden sollte, ist eine häufige Entscheidungsfrage in Prüfungen. Verwenden Sie Step Functions, wenn Sie eine sichtbare, zustandsbehaftete Orchestrierung eines mehrstufigen Prozesses mit Fehlerbehandlung und Verzweigungen benötigen. Verwenden Sie SQS für zuverlässige asynchrone Punkt-zu-Punkt-Kommunikation zwischen zwei Services mit Wiederholungen über das Unsichtbarkeits-Timeout. Verwenden Sie EventBridge für das Routing von Events an mehrere Abonnenten anhand von Inhaltsmustern. Ein Step-Functions-Workflow kann alle drei integrieren: über ein Task-Token auf eine SQS-Nachricht warten, den Abschluss an EventBridge veröffentlichen und Lambda- sowie SDK-Aufrufe verketten.
Kurze Überprüfung
Testen Sie Ihr Verständnis der Konzepte für AWS Solutions Architect (SAA-C03) aus dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie Folgendes gelernt: Step Functions orchestriert Workflows als Zustandsautomaten mit Task-, Choice-, Parallel-, Map-, Wait- und Catch-Zuständen, Standard Workflows unterstützen bis zu 1 Jahr mit vollständigem Ausführungsverlauf, während Express Workflows für Workloads mit hohem Durchsatz und einer Laufzeit von unter 5 Minuten ausgelegt sind und das Callback-Muster mit Task-Tokens Genehmigungsschritte mit menschlicher Beteiligung ermöglicht. Als Nächstes beschäftigen wir uns mit Kinesis Data Streams für die Echtzeitverarbeitung von Ereignissen mit hohem Durchsatz.
Häufig gestellte Fragen
Ist die Lektion „Step Functions: Orchestrierung serverloser Workflows“ kostenlos?
Ja — der vollständige Text von „Step Functions: Orchestrierung serverloser Workflows“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AWS Solutions Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Step Functions: Orchestrierung serverloser Workflows“?
Definieren Sie mehrstufige Workflows als Zustandsautomaten in Step Functions, behandeln Sie Fehler mit Catch- und Retry-Blöcken und integrieren Sie native SDK-Integrationen. Du übst AWS Solutions Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AWS Solutions Architect zu starten?
Keine Vorkenntnisse erforderlich. AWS Solutions Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Step Functions: Orchestrierung serverloser Workflows“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AWS Solutions Architect-Lektion Code schreiben und ausführen?
Ja. Jede AWS Solutions Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- EventBridge: Event Bus und Regeln
- Step Functions: Orchestrierung serverloser Workflows
- Kinesis Data Streams für die Echtzeit-Ereignisverarbeitung
- Muster: Choreografie im Vergleich zu Orchestrierung