Was sind AWS Step Functions?
AWS Step Functions sind ein serverloser Orchestrierungsdienst, der es Ihnen ermöglicht, Zustandsmaschinen für Ihre Anwendungen zu entwerfen und zu verwalten. Eine Zustandsmaschine ist in diesem Kontext eine Abfolge von Schritten oder Zuständen, die die Ausführung von AWS-Diensten steuern. Ähnlich wie Azure Logic Apps oder Camunda ermöglichen es AWS Step Functions, Workflows (d.h. Zustandsmaschinen) zu erstellen und zu visualisieren, die die Ausführung mehrerer Dienste koordinieren und es einfacher machen, komplexe Prozesse zu verwalten.
Step Functions erscheinen häufig als strukturierte Abfolgen von Zuständen und Übergängen, die einem Flussdiagramm ähneln. Diese Abfolgen beginnen mit einem Anfangszustand (einem Startknoten) und enden bei einem Endzustand (einem Endknoten). Zustände in Step Functions können Ausführungen von AWS-Diensten, in der Regel AWS Lambda-Funktionen, sein, oder sie können Entscheidungszustände sein, die bedingte Verzweigungen innerhalb des Workflows bestimmen. Fehlerbehandler sind an bestimmten Stellen in der Abfolge integriert, um Ausnahmen und Wiederholungen zu verwalten. Die visuelle Darstellung einer Step Function (Beispiel unten abgebildet) bietet einen Überblick über Ihren Workflow.

Dieses Beispiel einer Step Function verwendet verbundene Lambda-Funktionen, um an der Börse zu handeln. Zuerst überprüft eine Lambda-Funktion den Preis der Aktie, dann übergibt sie ihn an eine andere Lambda-Funktion, um eine Kauf-/Verkaufempfehlung zu generieren, die dann auf die Genehmigung durch einen Menschen wartet (unter Verwendung eines Rückrufs). Abhängig von der Genehmigung und der generierten Empfehlung kauft die Step Function dann entweder die Aktie, verkauft sie oder schlägt fehl, wenn der Handel nicht genehmigt wurde.
Erstellen einer Step Function
Das Erstellen von Zustandsmaschinen in AWS Step Functions kann auf verschiedene Arten erfolgen, je nach Ihren Anforderungen.
Der übliche und einfachste Weg, Step Functions zu erstellen, ist die Verwendung der AWS Step Functions-Konsole. Diese Option bietet eine benutzerfreundliche, visuelle Schnittstelle zum Erstellen von Zustandsmaschinen. Sie können den visuellen Designer von Step Functions verwenden, um Zustände per Drag & Drop hinzuzufügen, Übergänge zu definieren und die Fehlerbehandlung festzulegen.
Nachdem Sie sich bei der AWS Management Console angemeldet haben, navigieren Sie zum AWS Step Functions-Dienst. Klicken Sie auf "Zustandsmaschine erstellen", verwenden Sie dann den visuellen Designer, um Ihren Workflow zu erstellen, indem Sie Zustände hinzufügen und konfigurieren.
Sie können Zustände entweder über das Aktionsmenü hinzufügen, das eine Liste der verwendbaren AWS-Dienste und deren entsprechende Aktionen bereitstellt. Sie können auch auf das Flussmenü zugreifen, in dem Sie strukturelle Bausteine Ihrer Workflows finden, wie z.B. Wenn-Dann-Logikblöcke und Fehlerbehandlungs-Knoten, die dem Workflow sagen, dass er je nach empfangenem Fehler zu bestimmten Zuständen übergehen soll.

Weitere Optionen zum Erstellen von Step Functions umfassen Folgendes.
Eine JSON-basierte Definition
Diese Definition spezifiziert die Zustände, deren Eigenschaften, Übergänge und Fehlerbehandlung als JSON-Objekt. Sie können diese Definition manuell schreiben oder sie mit Code generieren.
Nachdem Sie die JSON-Definition erstellt haben, können Sie die AWS Management Console oder die AWS CLI (Command Line Interface) verwenden, um eine Zustandsmaschine zu erstellen, indem Sie die JSON-Definition bereitstellen. Dieser Ansatz eignet sich besser für Entwickler, die den Prozess der Erstellung von Zustandsmaschinen automatisieren möchten.
Und weitere fortgeschrittene AWS SDKs oder die AWS CLI-Option
Sie können Zustandsmaschinen programmgesteuert mit der AWS CLI oder einem der AWS SDKs (Software Development Kits) erstellen. Diese Tools bieten Befehle und APIs, um mit AWS Step Functions zu interagieren. Schreiben Sie Code oder verwenden Sie CLI-Befehle, um Ihre Zustandsmaschine zu definieren, ihre Eigenschaften festzulegen, sie zu erstellen und auszuführen. Dieser Ansatz ist hochgradig anpassbar und eignet sich für fortgeschrittene Benutzer, die daran interessiert sind, ihre Step Function-Erstellung zu automatisieren und sie in ihr bereits bestehendes Ökosystem zu integrieren.

Datenfluss in Step Functions
In AWS Step Functions werden Daten von einem Zustand zum anderen unter Verwendung des Konzepts von "Eingabe"- und "Ausgabe"-Daten übergeben, ähnlich wie bei Entscheidungsregeln.
Wenn die Ausführung einer Zustandsmaschine beginnt, stellen Sie eine anfängliche Eingabedaten oder Nutzlast bereit. Diese Eingabedaten werden an den ersten Zustand im Workflow übergeben. Jeder Zustand innerhalb der Zustandsmaschine kann auf diese Eingabedaten zugreifen und sie verarbeiten, sodass sie auf spezifische Teile oder Eigenschaften der Daten operieren können.
Wenn ein Zustand seine Ausführung abgeschlossen hat, kann er Ausgabedaten erzeugen. Diese Ausgabedaten werden automatisch als Eingabe an die nächste Stufe im Workflow übergeben.
Sie können angeben, welche Daten der Zustand als Ausgabe erzeugt, in seiner Konfiguration oder über das Attribut "ResultPath". Die ausgegebenen Daten können transformierte Eingabedaten, eine völlig neue Datenstruktur oder relevante Informationen aus der Ausführung des Zustands sein.
Es gibt noch viel mehr zur Eingabe- und Ausgabeverarbeitung in AWS Step Functions, wie das Kontextobjekt oder die Verwendung von "ResultPath", aber diese Themen liegen außerhalb des Rahmens dieses Artikels.
Ausführen einer Step Function
Eine Ausführung einer Zustandsmaschine erfolgt, wenn eine AWS Step Functions-Zustandsmaschine läuft und ihre Aufgaben ausführt. Jede Step Functions-Zustandsmaschine kann mehrere gleichzeitige Ausführungen haben, die Sie von der Step Functions-Konsole aus oder durch Verwendung der AWS SDKs, der Step Functions API-Aktionen oder der AWS Command Line Interface initiieren können. Eine Ausführung erhält JSON-Eingaben und erzeugt JSON-Ausgaben.
Nach und während einer Step Functions-Ausführung stellt AWS uns hilfreiche Informationen über die aktuellen und vorherigen Zustände der Ausführung zur Verfügung, einschließlich der Eingaben und Ausgaben jedes Schrittes. Diese Informationen werden über ein Diagramm oder eine Tabelle der Schritte angezeigt, die die Zustandsmaschine durchlaufen hat.

Damit endet Teil I dieses Artikels. Jetzt, da wir verstehen, was Step Functions sind und wie wir sie erstellen, ihre Daten verwalten und sie ausführen können, können wir uns einige Beispiele ansehen, wie sie uns bei der Geschäftsentscheidung helfen könnten, wenn sie zusammen mit Entscheidungsregeln verwendet werden.
Danke fürs Lesen!
Das Team von DecisionRules

David Janata
Fullstack-Entwickler
