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.
Verwendung von Terraform zur Bereitstellung von Zustandsmaschinen in Step Functions
Terraform
Wenn Sie mit Terraform vertraut sind, können Sie den in diesem Thema beschriebenen Entwicklungszyklus als Modell für die Erstellung und Bereitstellung Ihrer Zustandsmaschinen in Terraform verfolgen. Wenn Sie mit Terraform nicht vertraut sind, empfehlen wir Ihnen, zunächst den Workshop Einführung in Terraform zu absolvieren, um sich mit Terraform vertraut zu
In diesem Thema
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:
-
Installieren Sie Terraform auf Ihrem Computer. Informationen zur Installation von Terraform finden Sie unter Terraform installieren.
-
Installieren Sie Step Functions Local auf Ihrem Computer. Wir empfehlen, das Docker-Image Step Functions Local zu installieren, um Step Functions Local zu verwenden. Weitere Informationen finden Sie unter Testen von Zustandsmaschinen mit Step Functions Local (nicht unterstützt).
-
Installieren Sie AWS SAM CLI. Installationsinformationen finden Sie unter Installation der AWS SAM CLI im AWS Serverless Application Model Entwicklerhandbuch.
-
Installieren Sie den AWS Toolkit for Visual Studio Code , um das Workflow-Diagramm Ihrer Zustandsmaschinen anzuzeigen. Informationen zur Installation finden Sie unter Installation von AWS Toolkit for Visual Studio Code im AWS Toolkit for Visual Studio Code Benutzerhandbuch.
Analysieren Sie den Lebenszyklus der Maschinenentwicklung mit Terraform
Das folgende Verfahren erklärt, wie Sie einen State-Machine-Prototyp, den Sie mit Workflow Studio in der Step Functions Functions-Konsole erstellen, als Ausgangspunkt für die lokale Entwicklung mit Terraform und dem verwenden können. AWS Toolkit for Visual Studio Code
Das vollständige Beispiel, in dem die Zustandsmaschine-Entwicklung mit Terraform erörtert und die Best Practices im Detail vorgestellt werden, finden Sie unter Bewährte Methoden für das Schreiben von Step Functions Terraform-Projekten
Um den Entwicklungszyklus einer State Machine mit Terraform zu beginnen
-
Starten Sie ein neues Terraform-Projekt mit dem folgenden Befehl.
terraform init -
Öffnen Sie die Step Functions Functions-Konsole
, um einen Prototyp für Ihre State Machine zu erstellen. -
Gehen Sie in Workflow Studio wie folgt vor:
-
Erstellen Sie Ihren Workflow-Prototyp.
-
Exportieren Sie die Amazon States Language (ASL) -Definition Ihres Workflows. Wählen Sie dazu die Import/ExportDropdownliste und dann JSON-Definition exportieren aus.
-
-
Speichern Sie die exportierte ASL-Definition in Ihrem Projektverzeichnis.
Verwenden Sie die Funktion jsonencode () in dem Feld, um die exportierte ASL-Definition an die Terraform-Ressource aws_sfn_state_machine
zu übergeben. definitionDieser Ansatz verarbeitet alle Terraform-Typen, einschließlich Listen und Maps, ordnungsgemäß und eignet sich daher für Definitionen, die dynamische Werte wie Ressourcen-ARNs oder Sicherheitsgruppen-IDs enthalten. Alternativ können Sie ihntemplatefilefür statische Definitionen verwenden, für die nur einfache Zeichenkettenersetzungen erforderlich sind.templatefileKann jedoch komplexe Typen wie Listen nicht verarbeiten.Tipp
Da die ASL-Definitionsdatei lange Textblöcke enthalten kann, empfehlen wir, die Inline-EOF-Methode zu vermeiden. Dadurch ist es einfacher, Parameter in Ihre Zustandsmaschinen-Definition einzufügen.
-
(Optional) Aktualisieren Sie die ASL-Definition in Ihrer IDE und visualisieren Sie Ihre Änderungen mithilfe von. AWS Toolkit for Visual Studio Code
-
Testen Sie Ihren Workflow mit Step Functions Local.
Tipp
Mit AWS SAM CLI Local können Sie Serviceintegrationen mit Lambda-Funktionen und API-Gateway-APIs auch lokal in Ihrer Zustandsmaschine testen.
-
Zeigen Sie eine Vorschau Ihrer Zustandsmaschine und anderer AWS Ressourcen an, bevor Sie die Zustandsmaschine bereitstellen. Führen Sie dazu den folgenden Befehl aus.
terraform plan -
Stellen Sie Ihre Zustandsmaschine mithilfe des folgenden Befehls von Ihrer lokalen Umgebung oder über CI/CD Pipelines
aus bereit. terraform apply -
(Optional) Bereinigen Sie Ihre Ressourcen und löschen Sie die Zustandsmaschine mit dem folgenden Befehl.
terraform destroy
IAM-Rollen und -Richtlinien für Ihren State Machine
Verwenden Sie die Terraform-Dienstintegrationsrichtlinien
Das folgende Beispiel für eine IAM-Richtlinie gewährt Ihrer Zustandsmaschine Zugriff, um eine Lambda-Funktion mit dem Namen aufzurufen. myFunction
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:myFunction" } ] }
Wir empfehlen außerdem, die aws_iam_policy_document
Das folgende Beispiel für eine IAM-Richtlinie verwendet die aws_iam_policy_document Datenquelle und gewährt Ihrer Zustandsmaschine Zugriff, um eine Lambda-Funktion mit dem Namen aufzurufen. myFunction
data "aws_iam_policy_document" "state_machine_role_policy" { statement { effect = "Allow" actions = [ "lambda:InvokeFunction" ] resources = ["${aws_lambda_function.function-1.arn}:*"] } }
Tipp
Weitere erweiterte AWS Architekturmuster, die mit Terraform bereitgestellt wurden, finden Sie unter Terraform-Beispiele unter Serverless Land Workflows Collection