Optionen für die Entwicklung - AWS Step Functions

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Optionen für die Entwicklung

Sie können Ihre AWS Step Functions Zustandsmaschinen auf verschiedene Weise implementieren, z. B. mithilfe der Konsole, der SDKs oder einer lokalen Version von Step Functions für Tests und Entwicklung.

Step Functions Functions-Konsole

Sie können eine Zustandsmaschine mithilfe der Step Functions Functions-Konsole definieren. Sie können komplexe Zustandsmaschinen in der Cloud schreiben, ohne eine lokale Entwicklungsumgebung AWS Lambda zu verwenden, indem Sie Code für Ihre Aufgaben bereitstellen. Nach dem Schreiben können Sie dann die Step Functions Functions-Konsole verwenden, um Ihre Zustandsmaschine mithilfe der Amazon States-Sprache zu definieren.

Das Tutorial „Lambda State Machine erstellen“ verwendet diese Technik, um eine einfache Zustandsmaschine zu erstellen, sie auszuführen und ihre Ergebnisse anzuzeigen.

Datenflusssimulator

Sie können Workflows in der Step Functions Functions-Konsole entwerfen, implementieren und debuggen. Sie können den Datenfluss in Ihren Workflows auch mithilfe der JsonPath Eingabe- und Ausgabeverarbeitung steuern. Verwenden Sie den Datenflusssimulator in der Step Functions Functions-Konsole, um zu erfahren, wie Informationen von Status zu Status fließen, und um zu verstehen, wie Daten gefiltert und bearbeitet werden. Dieses Werkzeug simuliert jedes der Felder, die Step Functions zur Verarbeitung von Daten verwendet, z. B.InputPath,Parameters, ResultSelectorOutputPath, undResultPath.

Weitere Informationen finden Sie unter Datenflusssimulator.

AWS-SDKs

Step Functions wird von den AWS SDKs für Java, .NET, Ruby, PHP, Python (Boto 3) JavaScript, Go und C++ unterstützt. Diese SDKs bieten eine bequeme Möglichkeit, die HTTPS-API-Aktionen von Step Functions in mehreren Programmiersprachen zu verwenden.

Sie können Zustandsautomaten, Aktivitäten oder Zustandsautomat-Starter mithilfe der API-Aktionen entwickeln, die von diesen SDK-Bibliotheken bereitgestellt werden. Mithilfe dieser Bibliotheken können Sie auch auf Sichtbarkeitsoperationen zugreifen, um Ihre eigenen Überwachungs- und Berichtstools von Step Functions zu entwickeln.

Informationen zur Verwendung von Step Functions mit anderen AWS Services finden Sie in der Referenzdokumentation zu den aktuellen AWS SDKs und Tools für Amazon Web Services.

Anmerkung

Step Functions unterstützt nur HTTPS-Endpunkte.

Standard- und Express-Workflows

Wenn Sie einen neuen Zustandsautomaten erstellen, müssen Sie als Type entweder Standard oder Express auswählen. In beiden Fällen definieren Sie Ihren Zustandsmaschine in der Sprache Amazon States. Die Ausführungen des Zustandsautomaten verhalten sich abhängig von dem von Ihnen ausgewählten Type (Typ) jeweils anders. Der von Ihnen gewählte Typ kann nach der Erstellung Ihres Zustandsmaschinen nicht mehr geändert werden.

Weitere Informationen finden Sie unter Protokollierung mitCloudWatchProtokolle.

HTTPS-Dienst-API

Step Functions bietet Serviceoperationen, auf die über HTTPS-Anfragen zugegriffen werden kann. Sie können diese Operationen verwenden, um direkt mit Step Functions zu kommunizieren und Ihre eigenen Bibliotheken in jeder Sprache zu entwickeln, die über HTTPS mit Step Functions kommunizieren kann.

Sie können mithilfe der Service-API-Aktionen Zustandsautomaten, Worker oder Zustandsautomaten-Starter entwickeln. Sie können über die API-Aktionen auch auf Sichtbarkeitsoperationen zugreifen, um Ihre eigenen Überwachungs- und Reporting-Tools zu entwickeln.

Ausführliche Informationen zu API-Aktionen finden Sie in der AWS Step FunctionsAPI-Referenz.

Entwicklungsumgebungen

Sie müssen eine Entwicklungsumgebung einrichten, die mit der Programmiersprache kompatibel ist, die Sie verwenden möchten.

Um beispielsweise für Step Functions mit Java zu entwickeln, müssen Sie auf jeder Ihrer Entwicklungs-Workstations eine Java-Entwicklungsumgebung wie die AWS SDK for Java installieren. Wenn Sie Eclipse IDE for Java Developers verwenden, sollten Sie auch die AWS Toolkit for Eclipse installieren. Dieses Eclipse-Plug-in fügt für die Entwicklung mit AWS nützliche Funktionen hinzu.

Wenn Ihre Programmiersprache eine Laufzeitumgebung erfordert, müssen Sie die Umgebung auf jedem Computer einrichten, auf dem diese Prozesse ausgeführt werden.

Endpunkte

Um die Latenz zu reduzieren und Daten an einem Ort zu speichern, der Ihren Anforderungen entspricht, bietet Step Functions Endpunkte in verschiedenen AWS Regionen.

Jeder Endpunkt in Step Functions ist völlig unabhängig. Zustandsautomaten oder Aktivitäten existieren nur in der Region, in der sie erstellt wurden. Zustandsautomaten und Aktivitäten, die Sie in einer Region erstellen, teilen keine Daten oder Attribute mit denjenigen, die in einer anderen Region erstellt wurden. Sie können beispielsweise eine Zustandsmaschine registrieren, die STATES-Flows-1 in zwei verschiedenen Regionen benannt ist. Die STATES-Flows-1 Zustandsmaschine in einer Region teilt keine Daten oder Attribute mit der STATES-Flow-1 Zustandsmaschine in der anderen Region.

Eine Liste der Step Functions Functions-Endpunkte finden Sie unter AWS Step FunctionsRegionen und Endpunkte in der. Allgemeine AWS-Referenz

AWS CLI

Über AWS Command Line Interface (AWS CLI) können Sie auf viele Funktionen von Step Functions zugreifen. Dies AWS CLI ist eine Alternative zur Verwendung der Step Functions Functions-Konsole oder in einigen Fällen zur Programmierung mithilfe der Step Functions Functions-API-Aktionen. Sie können den beispielsweise verwenden, AWS CLI um eine Zustandsmaschine zu erstellen und dann Ihre vorhandenen Zustandsmaschinen aufzulisten.

Sie können Step Functions Functions-Befehle in verwenden, AWS CLI um Ausführungen zu starten und zu verwalten, Aktivitäten abzufragen, Task-Heartbeats aufzuzeichnen und vieles mehr. Eine vollständige Liste der Step Functions Functions-Befehle, Beschreibungen der verfügbaren Argumente und Beispiele für ihre Verwendung finden Sie in der AWS CLIBefehlsreferenz.

AWS CLIDie Befehle orientieren sich eng an der Sprache von Amazon States, sodass Sie die verwenden können, AWS CLI um mehr über die API-Aktionen von Step Functions zu erfahren. Sie können auch Ihre vorhandenen API-Kenntnisse verwenden, um Code zu prototypisieren oder Step Functions Functions-Aktionen von der Befehlszeile aus auszuführen.

Step Functions Lokal

Zu Test- und Entwicklungszwecken können Sie Step Functions auf Ihrem lokalen Computer installieren und ausführen. Mit Step Functions Local können Sie eine Ausführung auf jedem Computer starten.

Die lokale Version von Step Functions kann AWS Lambda Funktionen aufrufen, AWS sowohl in als auch bei der lokalen Ausführung. Sie können auch andere unterstützte AWS-Services koordinieren. Weitere Informationen finden Sie unter Staatsmaschinen vor Ort testen.

Anmerkung

Step Functions Local verwendet Dummy-Konten, um zu funktionieren.

AWS Toolkit for Visual Studio Code

Sie können VS Code verwenden, um mit Remote-Zustandsmaschinen zu interagieren und Zustandsmaschinen lokal zu entwickeln. Sie können Zustandsmaschinen erstellen oder aktualisieren, vorhandene Zustandsmaschinen auflisten und Zustandsmaschinen ausführen oder herunterladen. Mit VS Code können Sie auch neue Zustandsautomaten aus Vorlagen erstellen, eine Visualisierung Ihres Zustandsautomaten anzeigen und Codeausschnitte, Codevervollständigung und Codevalidierung bereitstellen.

Weitere Informationen finden Sie im AWS Toolkit for Visual Studio Code Benutzerhandbuch

AWS Serverless Application Modelund Step Functions

Step Functions ist in die integriertAWS Serverless Application Model, sodass Sie Workflows mit Lambda-Funktionen, APIs und Ereignissen integrieren können, um serverlose Anwendungen zu erstellen.

Sie können die AWS SAM-CLI auch in Verbindung mit dem AWS Toolkit for Visual Studio Code als Teil einer integrierten Erfahrung verwenden.

Weitere Informationen erhalten Sie unter AWS Step Functions und AWS SAM.

Terraform- und Step Functions

Terraform by HashiCorp ist ein Framework für die Erstellung von Anwendungen unter Verwendung von Infrastructure as Code (IaC). Mit Terraform können Sie Zustandsmaschinen erstellen und Funktionen wie die Vorschau von Infrastrukturbereitstellungen und die Erstellung wiederverwendbarer Vorlagen verwenden. Terraform-Vorlagen helfen Ihnen dabei, den Code zu verwalten und wiederzuverwenden, indem sie ihn in kleinere Abschnitte aufteilen.

Weitere Informationen finden Sie unter Bereitstellen von Zustandsmaschinen mit Terraform.

Unterstützung für Definitionsformate

Step Functions bietet eine Vielzahl von Tools, mit denen Sie Ihre State-Machine-Definitionen in verschiedenen Formaten bereitstellen können. Eine ASL-Definition (Amazon States Language), die die Details Ihres State Machine spezifiziert, kann entweder als Zeichenfolge oder als serialisiertes Objekt mithilfe von JSON oder YAML bereitgestellt werden.

Anmerkung

YAML erlaubt einzeilige Kommentare. Alle YAML-Kommentare, die in der Zustandsmaschine-Definition einer Vorlage bereitgestellt werden, werden nicht in die Definition der erstellten Ressource übernommen. Stattdessen können Sie die Comment Eigenschaft innerhalb der State-Machine-Definition verwenden. Weitere Informationen finden Sie auf der Seite Struktur des Zustandsautomaten.

Die folgende Tabelle zeigt, welche Tools ASL-basierte Definitionen unterstützen.

Unterstützung für Definitionsformate nach Tool
JSON YAML Stringifizierte Sprache in den Amazon-Staaten
Step Functions Functions-Konsole
HTTPS-Dienst-API
AWS CLI
Step Functions Lokal
AWS Toolkit for Visual Studio Code
AWS SAM
AWS CloudFormation
Anmerkung

AWS CloudFormationund ermöglicht es Ihnen AWS SAM auch, Ihre State-Machine-Definitionen im JSON- oder YAML-Format auf Amazon S3 hochzuladen und den Amazon S3 S3-Speicherort der Definition in der Vorlage anzugeben. Dies kann die Lesbarkeit Ihrer Vorlagen verbessern, wenn Ihre State-Machine-Definition komplex ist. Weitere Informationen finden Sie auf der AWS::StepFunctions::StateMachine S3Location-Seite.

Die folgenden AWS CloudFormation Beispielvorlagen zeigen, wie Sie dieselbe State-Machine-Definition mit unterschiedlichen Eingabeformaten bereitstellen können.

JSON with Definition
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS Step Functions sample template.", "Resources": { "MyStateMachine": { "Type": "AWS::StepFunctions::StateMachine", "Properties": { "RoleArn": { "Fn::GetAtt": [ "StateMachineRole", "Arn" ] }, "TracingConfiguration": { "Enabled": true }, "Definition": { "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "End": true } } } } }, "StateMachineRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "states.amazonaws.com" ] } } ] }, "ManagedPolicyArns": [], "Policies": [ { "PolicyName": "StateMachineRolePolicy", "PolicyDocument": { "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Resource": "*", "Effect": "Allow" } ] } } ] } } }, "Outputs": { "StateMachineArn": { "Value": { "Ref": "MyStateMachine" } } } }
JSON with DefinitionString
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS Step Functions sample template.", "Resources": { "MyStateMachine": { "Type": "AWS::StepFunctions::StateMachine", "Properties": { "RoleArn": { "Fn::GetAtt": [ "StateMachineRole", "Arn" ] }, "TracingConfiguration": { "Enabled": true }, "DefinitionString": "{\n \"StartAt\": \"HelloWorld\",\n \"States\": {\n \"HelloWorld\": {\n \"Type\": \"Pass\",\n \"End\": true\n }\n }\n}" } }, "StateMachineRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "states.amazonaws.com" ] } } ] }, "ManagedPolicyArns": [], "Policies": [ { "PolicyName": "StateMachineRolePolicy", "PolicyDocument": { "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Resource": "*", "Effect": "Allow" } ] } } ] } } }, "Outputs": { "StateMachineArn": { "Value": { "Ref": "MyStateMachine" } } } }
YAML with Definition
AWSTemplateFormatVersion: 2010-09-09 Description: AWS Step Functions sample template. Resources: MyStateMachine: Type: 'AWS::StepFunctions::StateMachine' Properties: RoleArn: !GetAtt - StateMachineRole - Arn TracingConfiguration: Enabled: true Definition: # This is a YAML comment. This will not be preserved in the state machine resource's definition. Comment: This is an ASL comment. This will be preserved in the state machine resource's definition. StartAt: HelloWorld States: HelloWorld: Type: Pass End: true StateMachineRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Action: - 'sts:AssumeRole' Effect: Allow Principal: Service: - states.amazonaws.com ManagedPolicyArns: [] Policies: - PolicyName: StateMachineRolePolicy PolicyDocument: Statement: - Action: - 'lambda:InvokeFunction' Resource: "*" Effect: Allow Outputs: StateMachineArn: Value: Ref: MyStateMachine
YAML with DefinitionString
AWSTemplateFormatVersion: 2010-09-09 Description: AWS Step Functions sample template. Resources: MyStateMachine: Type: 'AWS::StepFunctions::StateMachine' Properties: RoleArn: !GetAtt - StateMachineRole - Arn TracingConfiguration: Enabled: true DefinitionString: | { "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "End": true } } } StateMachineRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Action: - 'sts:AssumeRole' Effect: Allow Principal: Service: - states.amazonaws.com ManagedPolicyArns: [] Policies: - PolicyName: StateMachineRolePolicy PolicyDocument: Statement: - Action: - 'lambda:InvokeFunction' Resource: "*" Effect: Allow Outputs: StateMachineArn: Value: Ref: MyStateMachine