Aufbauend auf den in Teil I besprochenen Konzepten, in dem wir die Rolle von AWS Step Functions bei der Orchestrierung komplexer Workflows und der Automatisierung von Entscheidungsprozessen eingeführt haben, geht Teil II auf eine praktische Anwendung ein, indem DecisionRules.io für dynamische Entscheidungsfindung integriert wird, weiter verbessert durch Echtzeitdaten von der Open Weather API. Diese Integration veranschaulicht, wie AWS Step Functions komplexe Logik und Entscheidungen basierend auf externen Bedingungen verwalten kann und zeigt den Einsatz dieser Technologie in einem Szenario, das Anpassungsfähigkeit und Präzision erfordert.
Szenario: Workflow eines Catering-Unternehmens
Stellen Sie sich ein Catering-Unternehmen vor, das seine Abläufe dynamisch an die Wetterbedingungen anpassen muss. Die bereitgestellte Zustandsmaschine stellt einen einfachen Workflow dar, der die Abfrage von Wetterdaten mit Entscheidungsprozessen kombiniert, die von DecisionRules unterstützt werden. Dieses Setup ermöglicht es dem Unternehmen, fundierte Entscheidungen über die Veranstaltungsplanung, die Menüauswahl und die logistischen Arrangements zu treffen, die alle auf dem vorhergesagten Wetter basieren. Es kümmert sich auch um die Reservierung von Veranstaltungsorten und die Erstellung von Rechnungen mithilfe von AWS Lambdas, die mit dem Managementsystem des Unternehmens interagieren.

Was benötigen Sie?
- Ein AWS-Konto mit einem Abonnement und idealerweise Administratorrechten
- Eine Rolle für Ihre Zustandsmaschine mit den folgenden Berechtigungen: einige Texte
- zum Aufrufen von Lambda-Funktionen
- zum Aufrufen von HTTP-Endpunkten und Abrufen von Anmeldeinformationen über Amazon EventBridge
- zum Zugriff auf AWS Secrets Manager (wird von API Gateway verwendet, um Bearer-Token und andere sensible Informationen zu speichern)
- Allgemeine Berechtigungen für Step Functions (Ausführung starten, Ausführung beschreiben usw.)
Der Workflow
Die Zustandsmaschine beginnt mit der Herstellung einer Verbindung zur Open-Meteo API, um die Wettervorhersage abzurufen, transformiert die zurückgegebenen Daten, um einen Anfragekörper für DecisionRules sowie die beiden Lambda-Funktionen zu erstellen. Diese Daten informieren dann die nachfolgenden Entscheidungsfindungsschritte, bei denen die Geschäftslogik, die von DecisionRules.io verwaltet wird, die für diese spezielle Veranstaltung benötigte Ausrüstung bestimmt. Der Input für diese Zustandsmaschine ist ein einfaches JSON-Schema, in dem wir das Datum der Veranstaltung sowie die Breiten- und Längengrade des Veranstaltungsortes angeben.

Die Ausführung beginnt dann und folgt den untenstehenden Schritten.

1. Abrufen von Wetterdaten
Der Prozess beginnt mit dem Zustand "API-Endpunkt erstellen", der den Endpunkt für die Open-Meteo API konfiguriert. Nach dieser Einrichtung ruft der Zustand "Wetter-API aufrufen" die Vorhersage für das angegebene Datum und den Standort ab und stellt sicher, dass der Entscheidungsprozess durch die aktuellsten und relevantesten Wetterinformationen informiert wird. Diese Informationen liegen in Form eines Wettercodes vor, der mithilfe der Open-Meteo-Dokumentation interpretiert werden kann.
Die Anfrage selbst für unsere Eingabedaten sieht so aus:

2. Erstellen von Anfragekörpern
Nachdem die Wettervorhersage abgerufen wurde, wechselt die Zustandsmaschine in den Zustand "Anfragekörper erstellen", in dem sie die Eingabe für DecisionRules.io basierend auf den Wetterdaten vorbereitet.
In diesem Durchlaufzustand verarbeiten wir die Antwort von der Wetter-API und transformieren die Daten, um den Anfragekörper für DecisionRules vorzubereiten, und hier bereiten wir Anfragen für alle anderen Dienste oder Regelanwendungen vor, die wir im folgenden parallelen Zustand mit der Bezeichnung "Bestellung verarbeiten" ausführen möchten.
Unten ist eine Darstellung in Amazon State Language des Zustands "Artikel basierend auf Wettercode abrufen".

3. Parallele Ausführung für umfassende Entscheidungsfindung
Der Kern dieser Zustandsmaschine liegt im Zustand "Bestellung verarbeiten", der die gleichzeitige Ausführung mehrerer Aufgaben zeigt, von denen jede möglicherweise DecisionRules.io für verschiedene Aspekte der Veranstaltungsplanung nutzt. Diese parallele Verarbeitungskapazität hebt die Leistungsfähigkeit von AWS Step Functions hervor, um komplexe, vielschichtige Workflows effizient zu orchestrieren.
- Entscheidungsbasierte Artikelauswahl: Der Zweig "Artikel basierend auf Wettercode abrufen" verwendet DecisionRules.io, um zu bestimmen, welche Artikel am besten für die Veranstaltung geeignet sind, basierend auf dem aktuellen Wetter, um optimalen Komfort für die Gäste und den Erfolg der Veranstaltung zu gewährleisten. Sie können die Regel, die für die Auswahl der Artikel verantwortlich ist, unten sehen.

- Dynamische Rechnungsstellung und Veranstaltungsreservierung: Zusätzliche Zweige wie "Rechnungen erstellen" und "Veranstaltungsreservierung erstellen" kümmern sich um andere Aspekte der Veranstaltungsplanung und demonstrieren die Fähigkeit der Zustandsmaschine, verschiedene Aufgaben gleichzeitig zu verwalten.
Fehlerbehandlungsmechanismen
API-Fehler: Die Zustandsmaschine enthält einen Catch-Block im Task "Wetter-API aufrufen", um HTTP-Fehler und Zeitüberschreitungen zu behandeln. Bei Auftreten solcher Fehler wechselt der Workflow in den Zustand "API-Fehlerbehandler", der den Fehler protokolliert und die Ausführung beendet, um sicherzustellen, dass Fehler elegant behandelt werden und den gesamten Workflow nicht beeinträchtigen.
Fehler bei paralleler Ausführung: Ein Catch-Block innerhalb des Zustands "Bestellung verarbeiten" erfasst Fehler aus einem der parallelen Zweige. Wenn ein Fehler auftritt, wechselt der Workflow in den Zustand "Allgemeiner Fehlerbehandler", der den Fehler protokolliert und die Ausführung sicher beendet. Dieser Ansatz stellt sicher, dass Fehler in einem Zweig den gesamten Prozess nicht stoppen, sodass eine umfassende Fehlerverwaltung über mehrere Aufgaben hinweg möglich ist.
Die Ausgabe
Die Zustandsmaschine gibt eine Beschreibung des Wetters sowie empfohlene Artikel aus, die basierend auf dem vom Wetter-API bereitgestellten Wettercode mitgebracht werden sollen.


Integrationsvorteile und strategischer Wert
- Automatisierung und Skalierbarkeit: Der Einsatz von AWS Step Functions zur Orchestrierung dieser Prozesse reduziert manuelle Eingriffe, automatisiert komplexe Entscheidungs-Workflows und skaliert, um mehrere Veranstaltungen oder Szenarien gleichzeitig zu bewältigen.
- Innovative Nutzung von Cloud-Diensten: Dieses Szenario veranschaulicht die innovative Anwendung von Cloud-Diensten wie AWS Step Functions und DecisionRules.io zur Lösung realer geschäftlicher Herausforderungen und zeigt das Potenzial von Cloud-Technologie zur Förderung operativer Exzellenz und strategischer Anpassungsfähigkeit.
Fazit
Der fortgeschrittene Anwendungsfall der Integration von DecisionRules.io mit AWS Step Functions, informiert durch Echtzeit-Wettervorhersagedaten von der Open Weather API, demonstriert einen leistungsstarken Ansatz zur Automatisierung und Optimierung von Geschäftsentscheidungen. Dieses Szenario zeigt nicht nur die technischen Fähigkeiten dieser Dienste, sondern hebt auch den strategischen Wert hervor, cloudbasierte Lösungen für dynamische Entscheidungsfindung in Geschäftsabläufen zu nutzen.

David Janata
Fullstack-Entwickler
