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

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

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 machen. AWS

Tipp

Ein Beispiel für eine mit Terraform erstellte Zustandsmaschine für Sie bereitstellen AWS-Konto, finden Sie im Modul Verwaltung von Zustandsmaschinen mit Infrastruktur als Code von The Workshop. AWS Step Functions

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:

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
  1. Starten Sie ein neues Terraform-Projekt mit dem folgenden Befehl.

    terraform init
  2. Öffnen Sie die Step Functions Functions-Konsole, um einen Prototyp für Ihre State Machine zu erstellen.

  3. Gehen Sie in Workflow Studio wie folgt vor:

    1. Erstellen Sie Ihren Workflow-Prototyp.

    2. Exportieren Sie die Amazon States Language (ASL) -Definition Ihres Workflows. Wählen Sie dazu die Dropdownliste Import/Export und dann Definition exportieren aus. JSON

  4. Speichern Sie die exportierte ASL Definition in Ihrem Projektverzeichnis.

    Sie übergeben die exportierte ASL Definition als Eingabeparameter an die aws_sfn_state_machineTerraform-Ressource, die die Funktion verwendet. templatefile Diese Funktion wird innerhalb des Definitionsfeldes verwendet, das die exportierte ASL Definition und alle Variablenersetzungen weitergibt.

    Tipp

    Da die ASL Definitionsdatei lange Textblöcke enthalten kann, empfehlen wir, die EOF Inline-Methode zu vermeiden. Dadurch ist es einfacher, Parameter in Ihre Zustandsmaschinen-Definition einzufügen.

  5. (Optional) Aktualisieren Sie die ASL Definition in Ihrer IDE und visualisieren Sie Ihre Änderungen mithilfe von AWS Toolkit for Visual Studio Code.

    Screenshot der ASL Definition eines Workflows in Visual Studio Code und seiner visuellen Darstellung.

    Um zu vermeiden, dass Sie Ihre Definition ständig exportieren und in Ihr Projekt umgestalten, empfehlen wir Ihnen, Aktualisierungen lokal in Ihnen vorzunehmen IDE und diese Aktualisierungen mit Git zu verfolgen.

  6. Testen Sie Ihren Workflow mit Step Functions Local.

  7. 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
  8. Stellen Sie Ihre Zustandsmaschine mithilfe des folgenden Befehls von Ihrer lokalen Umgebung oder über CI/CD-Pipelines aus bereit.

    terraform apply
  9. (Optional) Bereinigen Sie Ihre Ressourcen und löschen Sie die Zustandsmaschine mit dem folgenden Befehl.

    terraform destroy

IAMRollen und Richtlinien für Ihre Zustandsmaschine

Verwenden Sie die Terraform-Dienstintegrationsrichtlinien, um Ihrer Zustandsmaschine die erforderlichen IAM Berechtigungen hinzuzufügen, z. B. die Erlaubnis, Lambda-Funktionen aufzurufen. Sie können auch explizite Rollen und Richtlinien definieren und diese Ihrer Zustandsmaschine zuordnen.

Das folgende IAM Richtlinienbeispiel gewährt Ihrer Zustandsmaschine Zugriff zum Aufrufen einer Lambda-Funktion mit dem Namen. 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_documentDatenquelle bei der Definition von IAM Richtlinien für Ihre Zustandsmaschinen in Terraform zu verwenden. Auf diese Weise können Sie überprüfen, ob Ihre Richtlinie falsch formatiert ist, und alle Ressourcen durch Variablen ersetzen.

Das folgende IAM Richtlinienbeispiel 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.[[myFunction]].arn}:*"] } }
Tipp

Weitere erweiterte AWS Architekturmuster, die mit Terraform bereitgestellt wurden, finden Sie unter Terraform-Beispiele unter Serverless Land Workflows Collection.