Entwickleroptionen - 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.

Entwickleroptionen

Sie können Ihre implementierenAWS Step FunctionsState-Machines auf verschiedene Weise, z. B. mithilfe der Konsole, der SDKs oder einer lokalen Version von Step Functions zum Testen und Entwickeln.

Step Functions Konsole

Sie können eine Zustandsmaschine definieren, indem SieStep Functions Konsole. Sie können komplexe Zustandsautomaten in der Cloud schreiben, ohne eine lokale Entwicklungsumgebung zu verwenden, indem SieAWS Lambdaum Code für Ihre Aufgaben bereitzustellen. Nach dem Schreiben können Sie die Step Functions Functions-Konsole verwenden, um Ihre Zustandsmaschine mithilfe der Amazon States-Sprache zu definieren.

DieErstellen einer Lambda State Machinetutorial verwendet diese Technik, um eine einfache Zustandsmaschine zu erstellen, auszuführen und ihre Ergebnisse anzuzeigen.

Datenflusssimulator

In der Step Functions Functions-Konsole können Sie Workflows entwerfen, implementieren und debuggen. Sie können den Datenfluss in Ihren Workflows auch steuern, indem SieJsonPathEin- und Ausgabeverarbeitung. Verwenden derDatenflusssimulator in der Step Functions Functions-Konsoleum zu lernen, wie Informationen von Staat zu Staat fließen, und um zu verstehen, wie Daten gefiltert und bearbeitet werden. Dieses Tool simuliert jeden derFelderdas Step Functions verwendet, um Daten zu verarbeiten, wieInputPath,Parameters,ResultSelector,OutputPathundResultPath.

AWS-SDKs

Step Functions wird unterstützt von derAWS-SDKs für Java, .NET, Ruby, PHP, Python ( JavaScript, Go und C++. 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 Berichtswerkzeuge für Step Functions zu entwickeln

So verwenden Sie Step Functions mit anderenAWSDienste finden Sie in der Referenzdokumentation für die aktuellenAWSSDKs undTools 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 Ihre Zustandsmaschine mithilfe der Amazon States Language. Die Ausführungen des Zustandsautomaten verhalten sich abhängig von dem von Ihnen ausgewählten Type (Typ) jeweils anders. DieTypSie können auswählen, dass nach der Erstellung Ihres Zustandsautomaten nicht geändert werden kann.

Weitere Informationen finden Sie unter Protokollierung mit CloudWatch Logs (Protokolle).

HTTPS-API

Step Functions bietet Dienstvorgänge, auf die über HTTPS-Anforderungen zugegriffen werden kann Sie können diese Operationen verwenden, um direkt mit Step Functions zu kommunizieren und eigene 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 über API-Aktionen finden Sie unterAWS 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 entwickeln zu können, müssen Sie eine Java-Entwicklungsumgebung wie dieAWS SDK for Java, auf jeder Ihrer Entwicklungsarbeitsplätze. 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 verschiedenenAWSRegionen.

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 mit dem NamenSTATES-Flows-1in zwei verschiedenen -Regionen. DieSTATES-Flows-1State Machine in einer Region teilt keine Daten oder Attribute mitSTATES-Flow-1Staatsmaschine in der anderen Region.

Eine Liste Step FunctionsAWS Step FunctionsRegionen und Endpunktein derAWSAllgemeine Hinweise.

AWS CLI

Sie können auf viele Step Functions-Funktionen überAWS Command Line Interface(AWS CLI) enthalten. DieAWS CLIist eine Alternative zur Verwendung desStep Functions Konsoleoder in einigen Fällen zur Programmierung mithilfe der API-Aktionen von Step Functions. Sie können beispielsweise dieAWS CLIum einen Zustandsautomaten zu erstellen und dann Ihre vorhandenen Zustandsautomaten aufzulisten.

Sie können die Befehle „Step Functions“ imAWS CLIum 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 derAWS CLIBefehlsreferenz.

AWS CLIBefehle folgen genau der Sprache der Amazon States, sodass Sie dieAWS CLIerfahren Sie mehr über die API-Aktionen von Step Functions Sie können Ihre vorhandenen API-Kenntnisse auch verwenden, um Prototypen von Code zu erstellen oder Schrittfunktions-Aktionen über die Befehlszeile auszuführen.

Step Functions

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 einer beliebigen Maschine starten.

Die lokale Version von Step Functions kann aufgerufen werdenAWS LambdaFunktionen, beide inAWSund wenn es lokal läuft. Sie können auch andere unterstützte AWS-Services koordinieren. Weitere Informationen finden Sie unter Beim Testen der Step Functions werden Maschinen lokal.

AWS Toolkit for Visual Studio Code

Sie können VS Code verwenden, um mit Remote-State-Maschinen zu interagieren und Zustandsautomaten lokal zu entwickeln. Sie können Zustandsautomaten erstellen oder aktualisieren, vorhandene Zustandsautomaten auflisten und eine Zustandsmaschine 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 unterdieAWS Toolkit for Visual Studio CodeBenutzerhandbuch

AWS Serverless Application ModelStep Functions

Step Functions ist integriert in dasAWS Serverless Application Model, mit dem 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.

Unterstützung des Definitionsformats

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

Anmerkung

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

In der folgenden Tabelle wird aufgeführt, welche Tools ASL-basierte Definitionen unterstützen.

Unterstützung des Definitionsformats durch Tool
JSON YAML Stringifizierte Amazon States
Step Functions
HTTPS-API
AWS CLI
Step Functions
AWS Toolkit for Visual Studio Code
AWS SAM
AWS CloudFormation
Anmerkung

AWS CloudFormationundAWS SAMermöglichen es Ihnen 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 unterAWS::StepFunctions::StateMachine S3LocationSeite.

Das folgende Beispiel:AWS CloudFormationVorlagen zeigen, wie Sie dieselbe State-Machine-Definition mit verschiedenen 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