AWS Step Functions – Häufig gestellte Fragen
Ü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. Der Aufbau von Anwendungen aus einzelnen Komponenten, die jeweils eine diskrete Funktion erfüllen, erleichtert die Skalierung und ermöglicht schnellere Anwendungsänderungen.
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 schneller diagnostizieren und beheben. Sie können Schritte verändern und hinzufügen, ohne dass Sie Codes schreiben müssen, sodass Sie Ihre Anwendung einfacher entwickeln und schneller erneuern können.
F: Welche Vorteile hat die Gestaltung meiner Anwendung durch Orchestrierung?
Die Aufteilung einer Anwendung in Servicekomponenten (oder Schritte) stellt sicher, dass der Ausfall einer Komponente nicht das gesamte System zum Absturz bringt. Jede Komponente ist unabhängig skalierbar und kann aktualisiert werden, ohne dass das gesamte System nach jeder Änderung neu bereitgestellt werden muss.
Die Koordinierung von Service-Komponenten erfordert die Verwaltung von Ausführungsabhängigkeiten und Zeitplanung und Gleichzeitigkeit entsprechend dem logischen Ablauf der Anwendung. In einer solchen Anwendung können Sie diese Aufgaben mithilfe der Service-Orchestrierung durchführen und Ausfälle bearbeiten.
F: Was sind einige gängige Step-Functions-Anwendungsfälle?
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: Konsolidieren Sie Daten aus mehreren Datenbanken in einheitlichen Berichten, verfeinern und reduzieren Sie große Datensätze in nützliche Formate, iterieren und verarbeiten Sie Millionen von Dateien in einem Amazon-Simple-Storage-Service-Bucket (S3) mit Workflows mit hoher Gleichzeitigkeit oder koordinieren Sie mehrstufige Analysen und Machine Learning
- Entwicklung serverloser generativer KI-Anwendungen: Nutzen Sie Step Functions für die Orchestrierung von Interaktionen mit den Basismodellen von Amazon Bedrock, schnelle Verkettung, Feinabstimmung und Anreicherung mit Funktionen aus über 220 AWS-Services
- 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?
Wenn Sie Step Functions verwenden, 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 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 einfacher 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 Entwicklerhandbuch von Step Functions.
F: Wie verbindet sich Step Functions mit meinen Ressourcen?
Sie können jeden AWS-Service mit Service-Integrationen oder jede selbstverwaltete Anwendungskomponente mit Aktivitäten orchestrieren.
Service-Integrationen helfen Ihnen, Aufrufe an AWS-Services zu erstellen und die Antwort in Ihren Workflow einzubinden. Mit den AWS-SDK-Service-Integrationen helfen Ihnen eine von über 9 000 AWS-API-Aktionen aus über 200 Services direkt von Ihrem Workflow aus auzufrufen.
Optimierte Service-Integrationen vereinfachen die Nutzung gängiger Services wie AWS Lambda, Amazon Elastic Container Service (ECS), AWS Glue oder Amazon EMR mit Funktionen wie der Generierung von IAM-Richtlinien und dem RunAJob-Muster, das automatisch auf den Abschluss asynchroner Jobs wartet.
Aktivitäten beinhalten die Integration mit Activity Works, die Sie an einem Ort Ihrer Wahl ausführen, z. B. in Amazon Elastic Compute Cloud (EC2), in Amazon ECS, auf einem mobilen Gerät oder auf einem Server vor Ort. Der Activity Worker fragt Step Functions nach Arbeit ab, nimmt alle Eingaben von Step Functions entgegen, führt die Arbeit mit Ihrem Code aus und gibt die Ergebnisse zurück. Da Activity Worker Arbeit anfordern, ist es einfacher, Worker zu verwenden, die hinter einer Firewall bereitgestellt sind.
Ein Zustandsautomat von Step Functions kann Kombinationen von Service-Integrationen und Aktivitäten enthalten. Anwendungen von Step Functions können auch Activity Worker, die in einem Rechenzentrum laufen, mit Service-Aufgaben kombinieren, die in der Cloud ausgeführt werden. Die Worker im Rechenzentrum werden wie gewohnt weiter ausgeführt, ebenso wie alle cloudbasierten Serviceaufgaben.
F: Was sind die ersten Schritte mit Step Functions?
Es gibt eine Reihe von Möglichkeiten, wie Sie mit den Step Functions beginnen können:
- Erkunden Sie Beispielprojekte in der Step-Functions-Konsole
- Lesen Sie das Entwicklerhandbuch von Step Functions
- Probieren Sie unsere 10-Minuten Tutorials
F: Welche Sprachen werden von Step Functions verwendet?
Zustandsmaschinen von AWS Step Functions werden in JSON mit der deklarativen Amazon States Language definiert.
Um einen activity worker zu erstellen, können Sie jede beliebige Programmiersprache verwenden, solange Sie mit den 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. 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 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 zusammenstellen:
- Wenn Sie Express-Workflows als untergeordneten Workflow von Standard-Workflows ausführen: Der Express-Workflow wird von einem Task-Status im übergeordneten Orchestrierungs-Workflow aus aufgerufen und ist aus der Perspektive des übergeordneten Workflows als Ganzes erfolgreich oder nicht. Es unterliegt der Wiederholungsrichtlinie des übergeordneten Workflows für diese Aufgabe.
- Durch den Aufruf von Express-Workflows aus einem Express-Workflow heraus, solange alle Workflows die Dauer des übergeordneten Workflows nicht überschreiten: Sie können Ihre Workflows auf diese Weise faktorisieren, wenn Ihr Anwendungsfall eine Kombination aus lang laufenden oder genau einmaligen und kurzlebigen Schritten mit hoher Rate aufweist.
F: Wie unterstützen Step Functions die Parallelität?
Step Functions enthält einen Map-Status für dynamische Parallelisierung. Der Map-Status hat zwei Betriebsmodi, Inline und Verteilt, und beide Modi führen dieselbe Reihe von Schritten für eine Sammlung von Elementen aus. Eine Map im Inline-Modus kann 40 parallele Verzweigungen und eine maximale Ausführungshistorie von 25 000 Ereignissen oder etwa 6 500 Zustandsübergängen in einem Workflow unterstützen. Mit dem verteilten Modus können Sie bis zu 10 000 parallele Verzweigungen ausführen. Die verteilte Karte wurde für Amazon S3 optimiert, damit Sie einfacher über Objekte in einem S3-Bucket iterieren können. Siehe die Häufig gestellten Fragen im Abschnitt Integration. Die Iterationen einer verteilten Karte werden in parallele Ausführungen aufgeteilt, damit Sie die Grenzen der Nutzlast und der Ausführungshistorie überwinden können. Sie können auch wählen, ob jede Iteration von einem Standard-Workflow, der idempotent ist, oder einem Express-Workflow, der schneller und kostengünstiger, aber nicht idempotent ist, durchgeführt wird. Erfahren Sie mehr über den Map-Status.
Vergleiche
F: Wann sollte ich Step Functions im Vergleich zu Amazon Simple Queue Service (SQS) verwenden?
- Step Functions verfolgt alle Aufgaben und Ereignisse in einer Anwendung. SQS erfordert, dass Sie Ihre eigene Verfolgung auf Anwendungsebene implementieren, insbesondere wenn Ihre Anwendung mehrere Warteschlangen verwendet.
- 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. SQS würde die Implementierung zusätzlicher Funktionen erfordern.
- Step Functions bietet mehrere Funktionen, die die Anwendungsentwicklung erleichtern, z. B. die Weitergabe von Daten zwischen Aufgaben und die Flexibilität bei der Verteilung von Aufgaben, während Sie bei SQS Funktionen auf Anwendungsebene implementieren müssen.
- Step Functions verfügt über sofort einsatzbereite Funktionen zur Erstellung von Workflows zur Koordinierung Ihrer verteilten Anwendung. Mit SQS können Sie grundlegende Arbeitsabläufe erstellen, aber die Funktionalität ist begrenzt.
Wann sollte ich Step Functions im Vergleich zu Amazon Simple Workflow Service (SWF) verwenden?
Sie sollten sich für 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 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.
In welcher Beziehung steht die Integration der HTTPS-Endpunkte von Step Functions zu den API-Zielen von Amazon EventBridge?
Amazon EventBridge ist ein Serverless-Service, der Ereignisse verwendet, um Anwendungskomponenten miteinander zu verbinden. Auf diese Weise können Entwickler problemlos skalierbare, ereignisgesteuerte Anwendungen erstellen. API Destinations ist eine Funktion von EventBridge, mit der Sie Regeln für die Weiterleitung von Ereignissen an Endgeräte von Drittanbietern erstellen können, um Ereignisproduzenten und -verbraucher zu entkoppeln.
Die Integration von HTTPS-Endpunkten in AWS Step Functions ermöglicht es Ihnen, HTTPS-basierte Services aufzurufen und eine Antwort zu erhalten, mit der Sie den Ablauf Ihrer Ausführung auf der Grundlage Ihrer Geschäftslogik steuern können. Amazon EventBridge konzentriert sich auf das Weiterleiten von Ereignissen, während sich Step Functions auf die Orchestrierung von Workflows und die Statusverwaltung konzentriert. EventBridge-API-Ziele und die Integration von HTTPS-Endpunkten von Step Functions können eine Verbindung zur Authentifizierung unterstützen, sodass Sie Authentifizierungsdaten serviceübergreifend wiederverwenden können. Beide Services können zusammen verwendet werden, um hochgradig skalierbare und robuste verteilte Anwendungen zu erstellen.
Integration
F: Wie verbindet und koordiniert Step Functions andere AWS-Services?
Workflows, die Sie mit Step Functions erstellen, können mit Service-Integrationen über 200 AWS-Services verbinden und koordinieren. Beispielsweise können Sie:
- Eine AWS Lambda-Funktion aufrufen
- ECS- oder 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
- Amazon-Bedrock-Basismodell aufrufen
- 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-Services 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 Step Functions mit meinen Ressourcen?
F: Wie lässt sich Step Functions in Anwendungen von Drittanbietern integrieren?
Mithilfe der HTTPS-Endpunktintegration von AWS Step Functions können Sie direkt in HTTP-basierte Services, einschließlich SaaS-Anwendungen, integrieren. Mithilfe einer visuellen Oberfläche können Sie verteilte Anwendungen erstellen und orchestrieren, die aus AWS-Services und SaaS-Anwendungen bestehen.
F: Wie kann ich meine Ausführungen testen, analysieren oder debuggen?
Sie können die TestState-API verwenden, um einen einzelnen Schritt Ihres Workflows zu testen und so schnellere Feedback-Zyklen zu ermöglichen, um die Entwicklung zu beschleunigen. Mit dem TestState können Sie Services und Endpunkte direkt aufrufen, die Eingabe ändern, um verschiedene Szenarien nachzuahmen, und die Antwort überprüfen. Sie können über Workflow Studio auf den TestState zugreifen, sodass Sie ihn während der Entwicklung problemlos testen können, ohne dass Sie Ihren Workflow bereitstellen müssen. TestState akzeptiert eine einzelne Zustandsdefinition und Eingabe und gibt dann synchron die Statusausgabe zusammen mit zwischengeschalteten Datentransformationen zurück. Nachdem Sie Ihren Workflow ausgeführt haben, können Sie Ausführungen über Amazon CloudWatch Logs, AWS X-Ray und direkt in der Step-Funktionskonsole analysieren und debuggen, und zwar über ein visuelles Bedienerlebnis, das Ihnen hilft, Problembereiche schnell zu identifizieren.
F: Wie kann ich mit Step Functions einen großen Datensatz in Amazon S3 verarbeiten?
Sie können Workflows mit einem Map-Status im verteilten Modus erstellen, um Daten wie Protokolle, Mediendateien, Verkaufstransaktionen oder IoT-Sensordaten in großem Umfang zu verarbeiten. Step Functions iteriert durch die Elemente und startet sofort parallele Workflow-Ausführungen, so dass Sie eine On-Demand-Datenverarbeitung im großen Maßstab aufbauen können. Der Status der verteilten Karte wurde für die Arbeit mit S3 optimiert. Sie können einen S3-Bucket mit Filterkriterien, eine S3-Manifestdatei, eine JSON-Sammlung oder eine in S3 gespeicherte CSV-Datei als Eingaben für Ihren Workflow angeben. Sie können auch einen S3-Bucket für die Ausführungsergebnisse einer verteilten Karte angeben.
Wie funktioniert 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 API-Gateway-API verwenden, um Zustandsmaschinen von Step Functions, die die Komponenten einer verteilten Backend-Anwendung koordinieren, zu starten, und Aufgaben für menschliche Aktivitäten in die Schritte Ihrer Anwendung integrieren, wie z. B. Genehmigungsanfragen 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, Erstellen einer Step-Functions-API mit API Gateway.
F: Wie funktioniert AWS Step Functions mit Amazon EventBridge?
Choreographie und Orchestrierung sind zwei verschiedene Modelle dafür, wie verteilte Services miteinander kommunizieren können. Bei der Orchestrierung wird die Kommunikation strenger kontrolliert und Step Functions, ein Orchestrierungsservice, koordiniert die Interaktion und die Reihenfolge, in der die Services aufgerufen werden.
Die Choreographie ermöglicht Kommunikation ohne strenge Kontrolle. Mit Amazon EventBridge fließen Ereignisse zwischen Services ohne zentrale Koordination. Viele Anwendungen verwenden sowohl Choreographie als auch Orchestrierung für verschiedene Anwendungsfälle.
Beispiele dafür, wie Sie Step Functions und EventBridge zusammen verwenden können, sind das Senden eines Ereignisses oder das Erstellen eines Zeitplans mit EventBridge Scheduler, um einen AWS-Step-Functions-Workflow auszulösen, gefolgt von der Ausgabe von Ereignissen bei verschiedenen Schritten Ihres Workflows.
Was ist AWS Step Functions im Vergleich zu AWS Lambda
Ist AWS Step Functions serverlos?
F: Wie funktioniert die Protokollierung und Überwachung für Step Functions?
AWS Step Functions sendet Metriken an Amazon CloudWatch und AWS CloudTrail zur Anwendungsüberwachung. Mit CloudWatch können Metriken gesammelt und nachverfolgt sowie Alarme eingestellt werden. Zudem reagiert es automatisch auf Veränderungen in AWS Step Functions.
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 die von CloudWatch Events verwaltete Regeln für jeden integrierten Service 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 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.
F: Wie hilft Ihnen Step Functions bei der Entwicklung generativer KI-Anwendungen?
Step Functions hat eine optimierte Integration mit Amazon Bedrock. Sie können die Basismodellen von Bedrock direkt aus dem Workflow Ihrer Step Functions in natürlicher Sprache aufrufen. Dies gibt Ihnen die Möglichkeit:
- Bereichern Sie Ihre von Step Functions verarbeiteten Daten mit generativen KI-Funktionen, um die Komplexität der Verarbeitung Ihrer Daten zu reduzieren, z. B. durch Textzusammenfassung, Bildgenerierung oder Personalisierung.
- Rufen Sie Informationen aus Datenbanken ab, z. B. Ihre neuesten Produktpreise und Benutzerpersonalisierungsdaten, und verwenden Sie die systemeigenen Funktionen von Step Functions, um sie in die Eingabeaufforderung einzufügen. So stellen Sie sicher, dass das LLM die aktuellsten Daten verwendet, um die Genauigkeit der Antwort zu verbessern.
- Generieren Sie Einbettungen, indem Sie Step Functions Dokumente durchgehen lassen, Daten extrahieren, die Dokumente in Abschnitte unterteilen und dann die Daten in einem mehrstufigen Prozess vom digitalen Text in das Einbetten umwandeln. Dies kann als wiederkehrender Prozess geplant werden.
- Verwenden Sie Step-Function-Workflows für die Prompt-Verkettung. Sie können mehrere LLM-Aufrufe orchestrieren und für jede Phase der Kette das beste Modell auswählen, um eine benutzerdefinierte Kette von Verarbeitungsphasen zu bilden und kontextuellere und genauere Antworten aus dem Basismodell zu kuratieren.
- Entwickeln Sie Human-in-the-Loop-Interaktionen (HITL) mit Ihrem generativen KI-Workflow, um Antworten zu moderieren, um Halluzination zu vermeiden, oder bauen Sie Logik ein, um Antworten zu behandeln, die vom Basismodell nicht unterstützt 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 den Amazon-VPC-Endpunkten für Step-Functions im Step-Functions-Entwicklerhandbuch.
Compliance
F: Welche Compliance-Standards werden von den Step Functions unterstützt?
Step Functions ist konform mit HIPAA, FedRAMP, SOC, DSGVO 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