Übersicht

F: Was ist AWS Step Functions?

AWS Step Functions ist ein vollständig verwalteter Service, der die Koordination der einzelnen Komponenten verteilter Anwendungen und Microservices durch visuelle Workflows vereinfacht. Durch die Erstellung von Anwendungen aus einzelnen Komponenten, die jeweils eine separate Funktion ausführen, können Sie Anwendungen einfach skalieren und schnell verändern. Step Functions ist eine zuverlässige Methode zur Koordination von Komponenten und Durchlaufen der Funktionen Ihrer Anwendungen. Step Functions bietet eine grafische Konsole zum Anordnen und Visualisieren der Komponenten Ihrer Anwendungen als eine Serie von Schritten. Dies vereinfacht die Erstellung und Ausführung von mehrstufigen Anwendungen. Step Functions löst jeden Schritt automatisch aus und verfolgt ihn und führt bei Fehlern Neuversuche aus, sodass Ihre Anwendung in der richtigen Reihenfolge und wie erwartet ausgeführt wird. Step Functions protokolliert den Status von jedem Schritt, wenn also Probleme auftreten, können Sie Probleme schnell diagnostizieren und beheben. Sie können Schritte verändern und hinzufügen, ohne dass Sie Codes schreiben müssen, sodass Sie Ihre Anwendung problemlos entwickeln und schneller erneuern können.

F: Welche Vorteile hat die Gestaltung meiner Anwendung durch Orchestrierung?

Die Unterteilung einer Anwendung in Service-Komponenten (oder Schritte) stellt sicher, dass beim Ausfall einer Komponente nicht das gesamte System ausfällt, dass jede Komponente einzeln angepasst werden kann und die Komponenten aktualisiert werden können, ohne dass das gesamte System nach jeder Änderung umgestellt werden muss. Die Koordinierung von Service-Komponenten erfordert die Verwaltung von Ausführungsabhängigkeiten, Zeitplanung und Gleichzeitigkeit entsprechend dem logischen Ablauf der Anwendung. In einer solchen Anwendung können Entwickler diese Aufgaben mithilfe der Service-Orchestrierung durchführen und Ausfälle bearbeiten.

F: Was sind einige gängige AWS Step Functions-Anwendungsfälle?

AWS Step Functions hilft bei jedem Berechnungsproblem oder Geschäftsprozess, das bzw. der in eine Reihe von Schritten unterteilt werden kann. Es ist auch nützlich für die Erstellung von End-to-End-Workflows zur Verwaltung von Aufträgen mit wechselseitigen Abhängigkeiten. Folgende Anwendungsfälle sind möglich:

  • Datenverarbeitung: Konsolidierung von Daten aus mehreren Datenbanken zu einheitlichen Berichten, Verfeinerung und Reduzierung großer Datensätze in nützliche Formate oder Koordination von mehrstufigen Analysen und Workflows für Machine Learning.
  • DevOps und IT-Automatisierung: Entwickeln Sie Tools für kontinuierliche Integration und kontinuierliche Bereitstellung oder erstellen Sie ereignisgesteuerte Anwendungen, die automatisch auf Änderungen in der Infrastruktur reagieren.
  • E-Commerce: Automatisieren von missionskritischen Geschäftsprozessen wie Auftragsabwicklung und Bestandsverfolgung.
  • Webanwendungen: Implementieren von robusten Prozessen zur Benutzerregistrierung und Anmeldeauthentifizierung.

Weitere Informationen finden Sie unter AWS Step Functions-Anwendungsfälle und Kundenmeinungen.

F: Wie funktioniert AWS Step Functions?

Mit AWS Step Functions definieren Sie Zustandsmaschinen, die Ihren Workflow als eine Reihe von Schritten, deren Beziehungen sowie deren Ein- und Ausgänge beschreiben. Zustandsmaschinen enthalten eine Reihe von Zuständen, die jeweils einen einzelnen Schritt in einem Arbeitsablaufdiagramm darstellen. Zustände können Arbeiten ausführen, Entscheidungen treffen, Parameter übergeben, die parallele Ausführung einleiten, Timeouts verwalten oder Ihren Workflow mit Erfolg oder Misserfolg beenden. Die visuelle Konsole stellt jeden Zustand automatisch in der Reihenfolge der Ausführung grafisch dar, sodass es einfach ist, mehrstufige Anwendungen zu erstellen. Der Echtzeit-Status der einzelnen Schritte wird hervorgehoben und ein detaillierter Verlauf jeder einzelnen Ausführung angezeigt. Weitere Informationen finden Sie unter Funktionsweise von Step Functions im AWS Step Functions-Entwicklerhandbuch.

F: Wie verbindet sich AWS Step Functions mit meinen Ressourcen?

Sie können Ihre Zustandsmaschinen so konfigurieren, dass sie Arbeit verrichten, indem Sie Aktivitäts- und Serviceaufgaben verwenden. Mit Aktivitätsaufgaben können Sie einen bestimmten Schritt in Ihrem Workflow einem Code zuweisen, der an einem anderen Ort ausgeführt wird (bekannt als Activity-Worker). Ein Activity-Worker kann jede Anwendung sein, die eine HTTP-Verbindung herstellen kann, die überall gehostet wird. So können Activity-Workers beispielsweise auf einer Amazon EC2-Instance, auf einem mobilen Gerät oder auf einem lokalen Server ausgeführt werden. Der Activity-Worker pollt Schrittfunktionen für die Arbeit, nimmt alle Eingaben aus den Schrittfunktionen, führt die Arbeit mit Ihrem Code aus und gibt Ergebnisse zurück. Da Activity-Worker Arbeit anfordern, ist es einfach, Worker zu verwenden, die hinter einer Firewall eingesetzt werden.

Mit Serviceaufgaben können Sie einen Schritt in Ihrem Workflow mit einem unterstützten AWS-Dienst verbinden. Step Functions schiebt Abfragen an andere Dienste, damit sie Aktionen für Ihren Workflow durchführen können, wartet auf die Fertigstellung der Serviceaufgabe und fährt dann mit dem nächsten Schritt fort.

Eine AWS Step Functions-Zustandsmaschine kann Kombinationen von Aktivitätsaufgaben und Serviceaufgaben enthalten. AWS Step Functions-Anwendungen können auch Activity-Worker, die in einem Rechenzentrum ausgeführt werden, mit Serviceaufgaben kombinieren, die in der Cloud ausgeführt werden. Die Worker im Rechenzentrum werden wie gewohnt weiter ausgeführt, ebenso wie alle Cloud-basierten Serviceaufgaben.

F: Was sind die ersten Schritte mit AWS Step Functions?

Es gibt eine Reihe von Möglichkeiten, wie Sie mit den AWS Step Functions beginnen können:

F: Welche Sprachen werden von AWS Step Functions verwendet?

AWS Step Functions-Zustandsmaschinen werden in JSON mit der deklarativenAmazon States Language definiert. Um einen Activity-Worker zu erstellen, können Sie jede beliebige Programmiersprache verwenden, solange Sie mit den AWS Step Functions über Webservice-APIs kommunizieren können. Für die leichtere Vorgehensweise können Sie ein AWS SDK in der gewünschten Sprache verwenden. AWS Lambda unterstützt den Code, der in Node.js (JavaScript), Python, Golang (Go) und C# geschrieben wurde (mit der .NET Core-Runtime und anderen Sprachen). Weitere Informationen zum Lambda-Programmiermodell finden Sie im AWS Lambda-Entwicklerhandbuch.

F: Mein Workflow hat einige der Eigenschaften von Standard-Workflows und einige Eigenschaften von Express-Workflows. Wie bekomme ich das Beste aus beiden?

Sie können die beiden Workflow-Typen zusammenführen: Express-Workflows können als untergeordneter Workflow von Standard-Workflows ausgeführt werden. Der Express-Workflow wird aus einem Task-Zustand im übergeordneten verwaltenden Workflow aufgerufen und ist aus Sicht der übergeordneten Anwendung erfolgreich oder scheitert in seiner Gesamtheit. Es unterliegt der Wiederholungsrichtlinie des übergeordneten Workflows für diese Aufgabe. Sie können Express-Workflows auch innerhalb eines Express-Workflows aufrufen, sofern alle Workflows die Dauerbegrenzung des übergeordneten Workflows nicht überschreiten. Sie können Ihre Workflows auf diese Weise berücksichtigen, wenn Ihr Anwendungsfall eine Kombination aus lang laufenden oder genau einmaligen und kurzlebigen hochpreisigen Schritten aufweist. 

Vergleiche

F: Wann sollte ich AWS Step Functions im Vergleich zu Amazon SQS verwenden?

Sie sollten sich für AWS Step Functions entscheiden, wenn Sie Service-Komponenten bei der Entwicklung von hoch skalierbaren und auditierbaren Anwendungen koordinieren müssen. Sie sollten sich für Amazon Simple Queue Service (Amazon SQS) entscheiden, wenn Sie eine zuverlässige, hoch skalierbare gehostete Warteschlange zum Versenden, Speichern und Empfangen von Nachrichten zwischen Services benötigen. Step Functions verfolgt alle Tasks und Ereignisse in einer Anwendung. Mit Amazon SQS müssen Sie Ihr eigenes Tracking auf Anwendungsebene implementieren, insbesondere, wenn Ihre Anwendung mehrere Warteschlangen nutzt. Die Step Function-Konsole und die Sichtbarkeits-APIs bieten eine anwendungszentrierte Ansicht, mit der Sie nach Ausführungen suchen, Details einer Ausführung anzeigen und Ausführungen verwalten können. Bei Amazon SQS müssen solche zusätzlichen Funktionen implementiert werden. Step Function bietet zahlreiche Funktionen, die die Anwendungsentwicklung erleichtern, z. B. die Übergabe von Daten zwischen Tasks, Signale und Flexibilität bei der Verteilung von Tasks. Bei Amazon SQS müssen Sie manche Funktionen auf Anwendungsebene implementieren. Während Sie Amazon SQS einsetzen können, um grundlegende Workflows zur Koordinierung Ihrer verteilten Anwendung zu erstellen, gibt es diese Funktionalität bei Step Functions neben anderen Funktionen auf Anwendungsebene zum sofortigen Einsatz.

F: Wann sollte ich AWS Step Functions im Vergleich zu Amazon Simple Workflow Service (SWF)?

Sie sollten sich für AWS Step Functions für all Ihre neuen Anwendungen entscheiden, da dies ein produktives und agiles Vorgehen zur Koordination von Anwendungskomponenten unter Verwendung von visuellen Workflows darstellt. Wenn Sie externe Signale benötigen, die in Ihre Prozesse eingreifen, oder Unterprozesse starten möchten, die ein Ergebnis an einen übergeordneten Prozess zurückgeben, sollten Sie sich für Amazon Simple Workflow Service (Amazon SWF) entscheiden. Mit Amazon SWF können Sie ein Entscheiderprogramm schreiben, um Aktivitätsschritte von Entscheidungsschritten zu trennen, anstatt Zustandsmaschinen in einer deklarativen JSON zu schreiben. Dies bietet Ihnen die vollständige Kontrolle über Ihre Orchestrierungslogik, erhöht aber die Komplexität der Anwendungsentwicklung. Sie können hier Entscheiderprogramme in der Programmiersprache Ihrer Wahl schreiben oder das Flow-Framework mit seinen Programmierkonstrukten verwenden, die asynchrone Interaktionen für Sie strukturieren. 

F: Wann sollte ich Express-Workflows bzw. Standard-Workflows verwenden?

Express Workflows sollten Sie für Workloads mit hohen Ereignisraten und kurzen Laufzeiten verwenden. Express Workflows unterstützen Ereignisraten von mehr als 100 000 pro Sekunde. Express Workflows haben eine maximale Dauer von fünf Minuten. Express Workflows garantieren die „mindestens einmalige“ Ausführung eines jeden Workflow-Schrittes. Fehlgeschlagene Workflows müssen von Anfang neu ausgeführt werden. Express-Workflows unterstützen alle Serviceintegrationen. Express Workflows unterstützen keine Aktivitäten, Job-Run (.sync) und Callback-Muster.

Standard-Workflows mit AWS Step Functions eignen sich besser für langlebige, dauerhafte und auditierbare Workflows, bei denen das Wiederholen von Arbeitsschritten teuer (z. B. Neustart eines langlebigen Medientranscodes) oder problematisch (z. B. doppelte Belastung einer Kreditkarte) ist. Beispiel-Workloads umfassen das Training und die Bereitstellung von Machine Learning-Modellen, die Erstellung von Berichten, die Rechnungsstellung, die Kreditkartenverarbeitung sowie Bestell- und Erfüllungsprozesse. Standard-Workflows garantieren eine genau einmalige Ausführung jedes Workflow-Schrittes mit einer maximalen Dauer von einem Jahr. Diese Workflows verfolgen und speichern detaillierte Schritt-für-Schritt Informationen zu jedem Workflow, den Sie während und nach der Workflow-Ausführung überprüfen können. Standardworkflows unterstützen alle Serviceintegrationen, Aktivitäten und Designmuster.

F: Wann sollte ich AWS Step Functions, wann AWS CodePipeline verwenden?

AWS CodePipeline empfiehlt sich, wenn Sie das Release von Software- oder Infrastrukturänderungen automatisieren und Integrationen mit CI/CD-Services wie CodeBuild, CodeDeploy oder CI/CD-Lösungen von Drittanbietern als Teil Ihres Releaseworkflows nutzen möchten. Angelehnt an die Bereitstellungspraktiken von Amazon gibt es hier nur eine Instanz jeder Pipeline, wobei jede aus sequentiellen Stufen besteht. Diese Stufen sind gleichzeitig ein Sperrmechanismus, durch den sichergestellt wird, dass kritische Abschnitte der Pipeline zu jeder Zeit nur von einer Ausführung durchlaufen werden. Dank Unterstützung manueller Genehmigungen kann ein Release in CodePipeline in einer Stufe verbleiben und manuell getestet werden, während vorangehende Stufen ihre Ausführung fortsetzen. In diesem stufenbasierten Modell können auch alle Releases angehalten werden, ohne dass sich eine allzu große Release-Warteschlange bildet. CodePipeline gibt die neuesten Softwareänderungen intelligent frei, wodurch Sie sich Zeit für veraltete Releases sparen.

Step Functions dagegen unterstützt nativ mehrere Instanzen einer Zustandsmaschine, die gleichzeitig ausgeführt werden. Diese Funktionalität eignet sich insbesondere für Entwicklerteams, die für ihre Integrationen Entwicklung und Test ihrer Änderungen parallel durchführen. In diesem Fall sind jedoch benutzerdefinierte Lösungen zur Steuerung der Bereitstellungsreihenfolge erforderlich. AWS Step Functions sollten Sie verwenden, wenn Sie fortlaufende Integrationsworkflows mit Mustern wie Fehlerbehandlung, Parallelisierung und Branching erstellen müssen. Step Functions unterstützt die Serviceintegration u. a. mit AWS CodeBuild, Amazon ECS, Amazon EMR und AWS Glue. Wenn Ihr Workflow die Entwicklung von Softwareänderungen oder die Ausführung von Datenverarbeitungsanwendungen beinhaltet, sollten Sie Step Functions mit Serviceintegrationen für AWS CodeBuild, Amazon ECS, Amazon EMR und AWS Glue verwenden.

Integration

F: Wie verbinden und koordinieren AWS Step Functions andere AWS-Dienste?

Workflows, die Sie mit AWS Step Functions erstellen, können andere AWS-Dienste über Serviceaufgaben verbinden und koordinieren. Beispielsweise können Sie:

  • Eine AWS Lambda-Funktion aufrufen
  • Einen Amazon Elastic Container-Service oder einer AWS Fargate-Aufgabe ausführen
  • Ein bestehendes Element aus einer Amazon DynamoDB-Tabelle abrufen oder ein neues Element in eine DynamoDB-Tabelle einfügen.
  • Einen AWS Batch-Auftrag senden und warten, bis er abgeschlossen ist
  • Eine Nachricht zu einem Amazon SNS-Thema veröffentlichen
  • Eine Nachricht an eine Amazon SQS-Warteschlange senden
  • Einen AWS Glue-Auftrag starten
  • Einen Amazon SageMaker-Auftrag erstellen, um ein Machine Learning-Modell zu trainieren oder einen Datensatz im Batch-Verfahren zu transformieren.

Weitere Informationen über die Verwendung von Step Functions zur Verbindung mit anderen AWS-Diensten finden Sie im Step Functions-Entwicklerhandbuch. Sie können auch Aufgaben in Ihren Zustandsmaschinen erstellen, die Anwendungen ausführen, siehe Häufig gestellte Fragen im Abschnitt Übersicht, Wie verbinden sich AWS Step Functions mit meinen Ressourcen?

F: Wie funktioniert AWS Step Functions mit Amazon API Gateway?

Sie können Ihre Step Functions-APIs mit dem Amazon API-Gateway verknüpfen, so dass diese APIs Ihre Zustandsmaschinen aufrufen, wenn eine HTTPS-Anfrage an eine von Ihnen definierte API-Methode gesendet wird. Sie können eine Amazon API Gateway-API verwenden, um Step Functions-Zustandsmaschinen zu starten, welche die Komponenten einer verteilten Backend-Anwendung koordinieren und menschliche Aktivitäten in die Schritte Ihrer Anwendung integrieren, wie z. B. Genehmigungsanträge und Antworten. Sie können zudem serverlose asynchrone Aufrufe an die APIs von Services ausführen, die Ihre Anwendung verwendet. Weitere Informationen finden Sie in unserem Tutorial, Creating a Step Functions API Using API Gateway

F: Wie funktioniert die Protokollierung und Überwachung für AWS Step Functions?

AWS Step Functions sendet Metriken an Amazon CloudWatch und AWS CloudTrail zur Anwendungsüberwachung. Mit Amazon CloudWatch können Metriken gesammelt und nachverfolgt sowie Alarme eingestellt werden. Zudem reagiert es automatisch auf Veränderungen in AWS Step Functions. AWS CloudTrail erfasst alle API-Aufrufe für Step Functions als Ereignisse, einschließlich Aufrufe von der Step Functions-Konsole und von Codeaufrufen zu den Step Functions-APIs. Step Functions unterstützt auch Amazon CloudWatch Events-Verwaltungsregeln für jeden integrierten Dienst in Ihrem Workflow und erstellt und verwaltet CloudWatch Events-Regeln in Ihrem AWS-Konto nach Bedarf. Weitere Informationen finden Sie unter Überwachung und Protokollierung im AWS Step Functions-Entwicklerhandbuch.

F: Was passiert, wenn mein Express Workflow aufgrund von erschöpften Wiederholungsversuchen oder einer nicht verwalteten Ausnahme fehlschlägt?

Standardmäßig berichten Express-Workflows alle Ergebnisse an CloudWatch Logs, einschließlich der Workflow-Eingabe, -Ausgabe und abgeschlossenen Schritte. Sie können verschiedene Ebenen der Protokollierung wählen, um nur Fehler zu protokollieren, und Sie können wählen, ob Sie die Ein- und Ausgabe nicht protokollieren möchten. Workflows, die Wiederholungsversuche durchführen oder eine nicht verwaltete Ausnahme haben, sollten vom Anfang erneut ausgeführt werden. 

Sicherheit

F: Kann ich von den Ressourcen hinter meinem Amazon VPC auf die Step-Functions zugreifen, ohne eine Verbindung zum Internet herzustellen?

Step Functions unterstützt auch VPC Endpunkte (VPCE) über AWS PrivateLink. Sie können auf die Step Functions von VPC-fähigen AWS-Lambda-Funktionen und anderen AWS-Diensten zugreifen, ohne das öffentliche Internet zu durchqueren. Weitere Informationen finden Sie in Amazon Virtual Private Cloud Endpoints for AWS Step Functions im AWS Step Functions-Entwickler-Leitfaden.

Compliance

F: Welche Compliance-Standards werden von den Step Functions unterstützt?

AWS Step Functions ist konform mit HIPAA, FedRAMP, SOC, GDPR und anderen gängigen Compliance-Standards. Auf der AWS Cloud-Security-Website finden Sie eine detaillierte Liste der unterstützten Compliance-Standards.

Erste Schritte in AWS Step Functions

Seite "Erste Schritte" besuchen
Sind Sie startbereit?
An der AWS Step Functions-Konsole anmelden
Haben Sie Fragen?
Kontakt