Entwicklung von Workflows mit Step Functions - 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.

Entwicklung von Workflows mit Step Functions

Wir empfehlen, mit der Erstellung von Workflows in der Step Functions Functions-Konsole und dem visuellen Editor von Workflow Studio zu beginnen. Sie können mit einer leeren Arbeitsfläche beginnen oder Startvorlagen für allgemeine Szenarien auswählen.

Die Erstellung Ihrer Workflows erfordert die folgenden Aufgaben:

  • Definieren Sie Ihren Workflow

  • Ihren Workflow ausführen und debuggen

  • Bereitstellen Ihres Workflows

Sie definieren eine Zustandsmaschine in der Sprache Amazon States. Sie können Ihre Amazon States-Sprachdefinitionen manuell erstellen, Workflow Studio wird jedoch in Tutorials vorgestellt. Mit Workflow Studio können Sie Ihre Maschinendefinition definieren, die Schritte visualisieren und bearbeiten, Ihren Workflow ausführen und debuggen und die Ergebnisse anzeigen — alles von der Step Functions Functions-Konsole aus.

Sie können auch viele Step Functions-Funktionen aus dem AWS Command Line Interface (AWS CLI). Sie können beispielsweise eine Zustandsmaschine erstellen und Ihre vorhandenen Zustandsmaschinen auflisten. Sie können Step Functions Functions-Befehle verwenden in AWS CLI um Ausführungen zu starten und zu verwalten, Aktivitäten abzufragen, Aufgaben-Heartbeats aufzuzeichnen und vieles mehr. Eine vollständige Liste der Step Functions Functions-Befehle, Beschreibungen der verfügbaren Argumente und Beispiele für deren Verwendung finden Sie in der AWS CLI Befehlsreferenz. AWS CLI Befehlsreferenz

AWS CLI Die Befehle folgen genau der Sprache der Amazonas-Staaten, sodass Sie die verwenden können AWS CLI um mehr über die Step Functions API Functions-Aktionen zu erfahren. Sie können Ihr vorhandenes API Wissen auch nutzen, um Codeprototypen zu erstellen oder Step Functions Functions-Aktionen von der Befehlszeile aus auszuführen.

Validierung von State-Machine-Definitionen

Sie können den verwendenAPI, um Zustandsmaschinen zu validieren und potenzielle Probleme zu finden, bevor Sie Ihren Workflow erstellen.

Weitere Informationen zur Validierung von Workflows finden Sie ValidateStateMachineDefinitionin der Step Functions API Reference.

Um mit minimalem Setup zu beginnen, können Sie dem Tutorial Creating a Lambda State Machine folgen, das Ihnen zeigt, wie Sie einen Workflow mit einem einzigen Schritt definieren, der eine Lambda-Funktion aufruft, dann den Workflow ausführen und die Ergebnisse anzeigen.

Definieren Sie Ihren Workflow

Der erste Schritt bei der Entwicklung Ihres Workflows besteht darin, die Schritte in der Sprache von Amazon States zu definieren. Je nach Ihren Vorlieben und Ihrem Tool können Sie Ihre Step Functions Functions-Zustandsmaschinen in JSONYAML, oder als stringifizierte Amazon States Language (ASL) -Definition definieren.

Die folgende Tabelle zeigt die Unterstützung von ASL basierten Definitionsformaten nach Tools.

AWS Tool Unterstützte Formate
Step Functions Functions-Konsole JSON
HTTPSBedienung API Stringifiziert ASL
AWS CLI Stringifiziert ASL
Step Functions Lokal Stringifiziert ASL
AWS Toolkit for Visual Studio Code JSON, YAML
AWS SAM JSON, YAML
AWS CloudFormation JSON,YAML, Stringifiziert ASL

YAMLeinzeilige Kommentare in der State-Machine-Definition einer Vorlage werden nicht in die Definition der erstellten Ressource übernommen. Wenn Sie einen Kommentar beibehalten müssen, sollten Sie die Comment Eigenschaft in der State-Machine-Definition verwenden. Weitere Informationen finden Sie unter Struktur der Zustandsmaschine.

Mit AWS CloudFormation and AWS SAM, können Sie Ihre State-Machine-Definitionen in Amazon S3 (JSONoder YAML Format) hochladen und den Amazon S3 S3-Speicherort der Definition in der Vorlage angeben. Weitere Informationen finden Sie auf der AWSSeite:StepFunctions::: StateMachine S3Location.

Das folgende Beispiel AWS CloudFormation Vorlagen zeigen, wie Sie dieselbe State-Machine-Definition mithilfe verschiedener Eingabeformate 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: MyStateMachinele
Entwickeln Sie Workflows mit AWS SDKs

Step Functions wird unterstützt von AWS SDKsfür Java,. NET, RubyPHP, Python (Boto 3) JavaScript, Go und C++. Diese SDKs bieten eine bequeme Möglichkeit, die Step HTTPS API Functions-Aktionen in mehreren Programmiersprachen zu verwenden. Mithilfe der in diesen SDK Bibliotheken bereitgestellten API Aktionen können Sie Zustandsmaschinen, Aktivitäten oder Zustandsmaschinen-Starter entwickeln. Mithilfe dieser Bibliotheken können Sie auch auf Sichtbarkeitsoperationen zugreifen, um Ihre eigenen Überwachungs- und Berichtstools von Step Functions zu entwickeln. Aktuelle Informationen finden Sie in der Referenzdokumentation AWS SDKsund Tools für Amazon Web Services.

Entwickeln Sie Workflows anhand von HTTPS Anfragen

Step Functions bietet Serviceoperationen, auf die über HTTPS Anfragen zugegriffen werden kann. Sie können diese Operationen verwenden, um direkt mit Step Functions aus Ihren eigenen Bibliotheken zu kommunizieren. Mithilfe der API Serviceaktionen können Sie Zustandsmaschinen, Worker oder State-Machine-Starter entwickeln. Sie können über die API Aktionen auch auf Transparenzoperationen zugreifen, um Ihre eigenen Überwachungs- und Berichtstools zu entwickeln. Einzelheiten finden Sie auf der AWS Step Functions APIReferenz.

Entwickeln Sie Workflows mit dem AWS Step Functions Datenwissenschaft SDK

Datenwissenschaftler können Workflows erstellen, die Modelle für maschinelles Lernen mithilfe von Step Functions verarbeiten SageMaker und veröffentlichen. Sie können in Python auch mehrstufige Workflows für maschinelles Lernen erstellen, die orchestrieren AWS Infrastruktur im großen Maßstab. Das Tool AWS Step Functions Data Science SDK stellt ein Python bereitAPI, mit dem Step Functions Functions-Workflows erstellt und aufgerufen werden können. Sie können diese Workflows direkt in Python sowie in Jupyter-Notebooks verwalten und ausführen. Weitere Informationen finden Sie unter: AWSStep Functions Data Science Project auf Github, datenwissenschaftliche SDK Dokumentation und Beispiel-Jupyter-Notebooks und SageMaker Beispiele auf. GitHub

Ausführen und Debuggen Ihrer Workflows

Sie können Workflows auf verschiedene Arten starten, z. B. über die Konsole, einen API Aufruf (z. B. über eine Lambda-Funktion), über Amazon EventBridge und EventBridge Scheduler oder über eine andere Step Functions Functions-Zustandsmaschine. Beim Ausführen von Workflows können Sie eine Verbindung zu Diensten von Drittanbietern herstellen, verwenden AWS SDKs, und Daten während der Ausführung manipulieren. Es gibt verschiedene Tools, mit denen Sie die Ausführungsschritte und Daten, die durch Ihre Zustandsmaschine fließen, ausführen und debuggen können. Die folgenden Abschnitte bieten zusätzliche Ressourcen zum Ausführen und Debuggen Ihrer Workflows.

Weitere Informationen darüber, wie Sie State-Machine-Ausführungen starten können, finden Sie unter. State-Machine-Ausführungen in Step Functions starten

Wählen Sie einen Endpunkt für die Ausführung Ihrer Workflows

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. Alle Zustandsmaschinen und Aktivitäten, die Sie in einer Region erstellen, teilen keine Daten oder Attribute mit denen, die in einer anderen Region erstellt wurden. Sie können beispielsweise einen Zustandsmaschine registrieren, der 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 Functions Regionen und Endpunkte in der Allgemeine AWS-Referenz.

Steuern Sie den Datenfluss in Ihren Workflows

Sie können den Datenflusssimulator in der Step Functions Functions-Konsole verwenden, um zu sehen, wie Informationen von Status zu Status fließen, und um zu verstehen, wie Daten gefiltert und bearbeitet werden. Mit dem Datenflusssimulator können Sie jedes der Felder simulieren, die Step Functions zur Datenverarbeitung verwendet, z. B. InputPathParameters,ResultSelector,OutputPath, undResultPath. Weitere Informationen finden Sie unter Verwenden des Datenflusssimulators zum Testen des Datenflusses in Step Functions.

Lokale Entwicklungsversion von Step Functions

Zu Test- und Entwicklungszwecken haben Sie die Möglichkeit, Step Functions auf Ihrem lokalen Computer zu installieren und auszuführen. Die lokale Version von Step Functions kann aufrufen AWS Lambda Funktionen, beide in AWS und wenn es lokal läuft. Sie können auch andere unterstützte koordinieren AWS Dienstleistungen. Weitere Informationen finden Sie unter Lokales Testen von Zustandsmaschinen in Step Functions.

Lokale und Remote-Entwicklung mit VS Code

Sie können VS Code auch 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 Benutzerleitfaden

Bereitstellung Ihrer Workflows

Nachdem Sie Ihre Workflows definiert und debuggt haben, möchten Sie sie wahrscheinlich mithilfe von Infrastructure-as-Code-Frameworks bereitstellen. Sie können wählen, ob Sie Ihre Zustandsmaschinen mithilfe einer Vielzahl von IaC-Optionen bereitstellen möchten, darunter: AWS Serverless Application Model, AWS CloudFormation, AWS CDK, und Terraform.

AWS Serverless Application Model

Sie können Folgendes verwenden … AWS Serverless Application Model mit Step Functions, um Workflows zu erstellen und die Infrastruktur bereitzustellen, die Sie benötigen, einschließlich Lambda-Funktionen APIs und Ereignisse, um serverlose Anwendungen zu erstellen. Sie können auch das verwenden AWS SAM CLIin Verbindung mit AWS Toolkit for Visual Studio Code als Teil einer integrierten Erfahrung.

Weitere Informationen finden Sie unter Zum Erstellen von Step Functions Functions-Workflows verwenden AWS SAM.

AWS CloudFormation

Sie können Ihre Zustandsmaschinendefinitionen direkt verwenden in AWS CloudFormation Vorlagen.

Weitere Informationen finden Sie unter Die Verwendung von AWS CloudFormation um einen Workflow in Step Functions zu erstellen.

AWS CDK

Sie können Standard- und Express-Zustandsmaschinen erstellen mit AWS CDK.

Informationen zum Erstellen eines Standard-Workflows finden Sie unterWird verwendetCDK, um einen Standard-Workflow zu erstellen.

Informationen zum Erstellen eines Express-Workflows finden Sie unterWird verwendetCDK, um einen Express-Workflow zu erstellen.

Terraform

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 Verwendung von Terraform zur Bereitstellung von Zustandsmaschinen in Step Functions.