Theorie
Was sind Schrittfunktionen?
Aus AWS Docs: Step Functions ist ein serverloser Orchestrierungsdienst, mit dem Sie AWS Lambda-Funktionen und andere AWS-Dienste kombinieren können, um geschäftskritische Anwendungen zu erstellen. Mit der grafischen Konsole "Schrittfunktionen" sehen Sie Ihren Anwendungsworkflow als eine Reihe von ereignisgesteuerten Schritten. Schrittfunktionen basieren auf Zustandsautomaten und Aufgaben. Eine Zustandsmaschine ist ein Workflow. Eine Aufgabe ist ein Status in einem Workflow, der eine Arbeitseinheit darstellt, die von einem anderen AWS-Service ausgeführt wird. Jeder Schritt des Workflows ist ein Status.
Mit den integrierten Steuerelementen für Schrittfunktionen überprüfen Sie den Status jedes Schritts in Ihrem Workflow, um sicherzustellen, dass Ihre Anwendung in der richtigen Reihenfolge und wie erwartet ausgeführt wird. Abhängig von Ihrem Anwendungsfall können Step Functions AWS-Services wie Lambda aufrufen, um Aufgaben auszuführen. Sie können Workflows zum Verarbeiten und Veröffentlichen von Modellen für maschinelles Lernen erstellen. Mithilfe von Schrittfunktionen können Sie AWS-Services wie AWS Glue verwalten, um ETL-Workflows (Extrahieren, Transformieren und Laden) zu erstellen. Sie können auch lange automatisierte Workflows für Anwendungen erstellen, die menschliche Interaktion erfordern.
Oder, in einfachen Worten, ein Service zur Verwaltung Ihrer Prozesse.
Was sind die möglichen Anwendungsfälle für Schrittfunktionen?
- Orchestrierung Lambda-Funktionen
- Verzweigung
- Ausnahmebehandlung (Wiederholen oder Fangen)
- Menschliche Beteiligung am Prozess
- Parallelität
Prozesstypen in Schrittfunktionen
- Standard - wird für lange laufende Prozesse benötigt und bietet umfassende Unterstützung für Services und Interaktionsoptionen
- Express - wird für schnell laufende Prozesse benötigt (5 Minuten) und spart etwa 20 Mal pro Million ausgeführter Prozesse. Hat weniger Integration mit AWS-Services
Arten der Integration mit AWS Services
Antwort anfordern (Standard) - Ruft den Dienst auf und ermöglicht es Step Functions, nach Erhalt der HTTP-Antwort zum nächsten Status zu wechseln.
Job ausführen (.sync) - Ruft den Dienst auf und wartet, bis der Job abgeschlossen ist.
Warten auf einen Rückruf mit einem Task-Token (.waitForTaskToken) - Ruft den Dienst mit dem Task-Token auf und wartet, bis das Task-Token mithilfe des Callbacks zurückgegeben wird.
Vergleich der Integration mit AWS Services in Standard- und Express-Typen
Unterstützte Service-Integrationen für Standard
| Bedienung | Antwort anfordern | Führen Sie einen Job aus (.sync) | Warten Sie auf Rückruf (.waitForTaskToken) |
|---|---|---|---|
| Lambda | ✓ | ✓ | |
| AWS-Charge | ✓ | ✓ | |
| DynamoDB | ✓ | ||
| Amazon ECS / AWS Fargate | ✓ | ✓ | ✓ |
| Amazon SNS | ✓ | ✓ | |
| Amazon SQS | ✓ | ✓ | |
| AWS-Kleber | ✓ | ✓ | |
| SageMaker | ✓ | ✓ | |
| Amazon EMR | ✓ | ✓ | |
| CodeBuild | ✓ | ✓ | |
| AWS-Schrittfunktionen | ✓ | ✓ | ✓ |
Unterstützte Service-Integrationen für Express
| Bedienung | Antwort anfordern | Führen Sie einen Job aus (.sync) | Warten Sie auf Rückruf (.waitForTaskToken) |
|---|---|---|---|
| Lambda | ✓ | ||
| AWS-Charge | ✓ | ||
| DynamoDB | ✓ | ||
| Amazon ECS / AWS Fargate | ✓ | ||
| Amazon SNS | ✓ | ||
| Amazon SQS | ✓ | ||
| AWS-Kleber | ✓ | ||
| SageMaker | ✓ | ||
| Amazon EMR | ✓ | ||
| CodeBuild | ✓ | ||
| Schrittfunktionen | ✓ | ✓ |
Genug der Theorie, gehen wir zum Beispiel.
Theoretisches Beispiel
Betrachten Sie das Hello World-Beispiel, um zumindest eine Vorstellung davon zu bekommen, wie der Dienst aussieht.
Voraussetzungen
- AWS-Konto
- Wechseln Sie im AWS-Konto zum Dienst "Schrittfunktionen"
Wir machen also Folgendes:
- Gehen Sie zu "Schrittfunktionen erstellen".
- Zustandsmaschine definieren = Autor mit Codefragmenten
- Typ = Standard
- Definition =
{ "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "Result": "Hello", "Next": "World" }, "World": { "Type": "Pass", "Result": "World", "End": true } } }
Klicken Sie auf Ausführung starten. Einfügen kann weggelassen werden. Sie sollten ein Diagramm wie das folgende sehen:
Herzlichen Glückwunsch, Sie haben die einfachsten Schrittfunktionen erstellt.
Anstelle einer Schlussfolgerung
Wenn dieses Thema interessant ist, werden wir im nächsten Teil Schrittfunktionen mit AWS Lambda + SQS + SNS-Integration erstellen, wie in der Abbildung gezeigt:
Links zu Quellen:
https://docs.aws.amazon.com/step-functions/