View a markdown version of this page

Erstellen einer Step Functions-Zustandsmaschine, die Lambda verwendet - 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.

Erstellen einer Step Functions-Zustandsmaschine, die Lambda verwendet

In diesem Tutorial erstellen Sie einen einstufigen Workflow, der AWS Step Functions zum Aufrufen einer Funktion verwendet wird. AWS Lambda

Anmerkung

Step Functions basiert auf Zustandsautomaten und Aufgaben. In Step Functions werden Zustandsmaschinen als Workflows bezeichnet. Dabei handelt es sich um eine Reihe ereignisgesteuerter Schritte. Jeder Schritt in einem Workflow wird als Zustand bezeichnet. Ein Aufgabenstatus steht beispielsweise für eine Arbeitseinheit, die ein anderer AWS Dienst ausführt, z. B. den Aufruf eines anderen Dienstes AWS-Service oder einer API. Instanzen laufender Workflows, in denen Aufgaben ausgeführt werden, werden in Step Functions als Ausführungen bezeichnet.

Weitere Informationen finden Sie unter:

Lambda eignet sich gut für Task Staaten, da Lambda-Funktionen serverlos und einfach zu schreiben sind. Sie können Code im AWS-Managementkonsole oder in Ihrem bevorzugten Editor schreiben. AWS kümmert sich um die Details der Bereitstellung einer Computerumgebung für Ihre Funktion und deren Ausführung.

Schritt 1: Erstellen einer Lambda-Funktion

Ihre Lambda-Funktion empfängt Ereignisdaten und gibt eine Begrüßungsnachricht zurück.

Wichtig

Stellen Sie sicher, dass sich Ihre Lambda-Funktion unter demselben AWS Konto und AWS-Region wie Ihre Zustandsmaschine befindet.

  1. Öffnen Sie die Lambda-Konsole und wählen Sie Funktion erstellen.

  2. Wählen Sie auf der Seite Create function die Option Author from scratch.

  3. Geben Sie für Function name (Funktionsname) HelloFunction ein.

  4. Behalten Sie die Standardauswahl für alle anderen Optionen bei und wählen Sie dann Funktion erstellen.

  5. Nachdem Ihre Lambda-Funktion erstellt wurde, kopieren Sie den angezeigten Amazon-Ressourcennamen (ARN) der Funktion. Das Folgende ist ein Beispiel für eine ARN:

    arn:aws:lambda:region:123456789012:function:HelloFunction
  6. Kopieren Sie den folgenden Code für die Lambda-Funktion in den Codequellbereich der HelloFunction Seite.

    export const handler = async (event) => { return "Hello from " + event.who + "!"; };

    Dieser Code erstellt eine Grußformel aus dem Feld who der Eingabedaten, die durch das in Ihre Funktion übergebene event-Objekt bereitgestellt wird. Sie fügen später Eingabedaten für diese Funktion hinzu, wenn Sie eine neue Ausführung starten. Die Funktion gibt die zusammengestellte Begrüßung als Ausgabe zurück.

  7. Wählen Sie Bereitstellen.

Schritt 2: Testen Sie die Lambda-Funktion

Testen Sie Ihre Lambda-Funktion, um zu sehen, wie sie funktioniert.

  1. Wählen Sie Test aus.

  2. Geben Sie für Event name (Ereignisname) HelloEvent ein.

  3. Ersetzen Sie die Event-JSON-Daten durch Folgendes.

    { "who": "AWS Step Functions" }

    Der "who" Eintrag entspricht dem event.who Feld in Ihrer Lambda-Funktion und vervollständigt die Begrüßung. Sie geben dieselben Eingabedaten ein, wenn Sie Ihren State Machine ausführen.

  4. Wählen Sie Speichern und dann Testen.

  5. Erweitern Sie unter Execution result (Ausführungsergebnis) die Option Details, um die Testergebnisse anzuzeigen.

Schritt 3: Erstellen Sie eine Zustandsmaschine

Verwenden Sie die Step Functions-Konsole, um eine Zustandsmaschine zu erstellen, die die in Schritt 1 erstellte Lambda-Funktion aufruft.

  1. Öffnen Sie die Step Functions-Konsole, wählen Sie im Menü die Option State Machines und anschließend Create State Machine aus.

    Wichtig

    Stellen Sie sicher, dass sich Ihr State Machine unter demselben AWS Konto und derselben Region wie die Lambda-Funktion befindet, die Sie zuvor erstellt haben.

  2. Wählen Sie Aus leerem Feld erstellen.

  3. Benennen Sie Ihren Zustandsmaschinen und wählen Sie dann Weiter, um Ihren Zustandsmaschine in Workflow Studio zu bearbeiten.

  4. Vergewissern Sie sich, dass Sie im Statusbrowser auf der linken Seite die Registerkarte Aktionen ausgewählt haben. Ziehen Sie dann die AWS Lambda Invoke-API per Drag-and-Drop in den leeren Status mit der Bezeichnung Erster Status hierher ziehen.

  5. Konfigurieren Sie im Bereich „Inspektor“ Inspector-Bereich auf der rechten Seite die Lambda-Funktion:

    1. Wählen Sie im Abschnitt API-Parameter die Lambda-Funktion aus, die Sie zuvor in der Dropdownliste Funktionsname erstellt haben.

    2. Behalten Sie die Standardauswahl in der Dropdownliste Payload bei.

  6. (Optional) Wählen Sie Definition, um die Definition der State Machine Sprache der Amazonas-Staaten (ASL) anzuzeigen, die automatisch auf der Grundlage Ihrer Auswahl auf der Registerkarte „Aktionen“ und im Bereich „Inspector“ generiert wird.

  7. Geben Sie einen Namen für Ihren State Machine an. Wählen Sie dazu das Bearbeitungssymbol neben dem Standard-State-Machine-Namen von MyStateMachine. Geben Sie dann unter State Machine Configuration einen Namen in das Feld State Machine Name ein.

    Geben Sie beispielsweise den Namen LambdaStateMachine ein.

    Anmerkung

    Die Namen von Zustandsautomaten, Ausführungen und Aktivitätsaufgaben dürfen eine Länge von 80 Zeichen nicht überschreiten. Diese Namen müssen für Ihr Konto und Ihre AWS Region eindeutig sein und dürfen keines der folgenden Elemente enthalten:

    • Leerzeichen

    • Platzhalterzeichen () ? *

    • Klammerzeichen () < > { } [ ]

    • Sonderzeichen (" # % \ ^ | ~ ` $ & , ; : /)

    • Steuerzeichen (\\u0000- \\u001f oder \\u007f -\\u009f).

    Step Functions akzeptiert Namen für Zustandsautomaten, Ausführungen, Aktivitäten und Bezeichnungen, die Nicht-ASCII-Zeichen enthalten. Da solche Zeichen verhindern, dass Amazon Daten protokolliert, empfehlen wir, nur ASCII-Zeichen zu verwenden, damit Sie die Metriken CloudWatch von Step Functions verfolgen können.

  8. (Optional) Geben Sie in der State-Machine-Konfiguration weitere Workflow-Einstellungen an, z. B. den Zustandsmaschinentyp und dessen Ausführungsrolle.

    Behalten Sie für dieses Tutorial alle Standardauswahlen in den State-Machine-Einstellungen bei.

  9. Wählen Sie Erstellen aus.

  10. Wählen Sie im Dialogfeld „Rollenerstellung bestätigen“ die Option „Bestätigen“, um fortzufahren.

    Sie können auch Rolleneinstellungen anzeigen wählen, um zur State-Machine-Konfiguration zurückzukehren.

    Anmerkung

    Wenn Sie die von Step Functions erstellte IAM-Rolle löschen, kann Step Functions sie später nicht erneut erstellen. Ebenso kann Step Functions die ursprünglichen Einstellungen später nicht wiederherstellen, wenn Sie die Rolle ändern (z. B. indem Sie Step Functions aus den Principals in der IAM-Richtlinie entfernen).

Schritt 4: Führen Sie den State Machine aus

Nachdem Sie Ihre Zustandsmaschine erstellt haben, können Sie sie ausführen.

  1. Wählen Sie auf der Seite State Machines die Option LambdaStateMachine.

  2. Wählen Sie Start execution (Ausführung starten) aus.

    Das Dialogfeld Ausführung starten wird angezeigt.

  3. (Optional) Geben Sie einen benutzerdefinierten Ausführungsnamen ein, um den generierten Standard zu überschreiben.

    Non-ASCII Namen und Protokollierung

    Step Functions akzeptiert Namen für Zustandsautomaten, Ausführungen, Aktivitäten und Bezeichnungen, die Nicht-ASCII-Zeichen enthalten. Da solche Zeichen verhindern, dass Amazon Daten protokolliert, empfehlen wir, nur ASCII-Zeichen zu verwenden, damit Sie die Metriken CloudWatch von Step Functions verfolgen können.

  4. Ersetzen Sie im Eingabebereich die Beispiel-Ausführungsdaten durch die folgenden.

    { "who" : "AWS Step Functions" }

    "who"ist der Schlüsselname, den Ihre Lambda-Funktion verwendet, um den Namen der zu begrüßenden Person abzurufen.

  5. Wählen Sie Start Execution aus.

    Die Ausführung Ihrer Zustandsmaschine beginnt und eine neue Seite mit Ihrer laufenden Ausführung wird angezeigt.

  6. Die Step Functions-Konsole leitet Sie zu einer Seite weiter, die mit Ihrer Ausführungs-ID betitelt ist. Diese Seite wird als Seite mit den Ausführungsdetails bezeichnet. Auf dieser Seite können Sie die Ausführungsergebnisse überprüfen, während die Ausführung voranschreitet oder nachdem sie abgeschlossen ist.

    Um die Ausführungsergebnisse zu überprüfen, wählen Sie in der Diagrammansicht einzelne Bundesstaaten aus. Wählen Sie dann die einzelnen Registerkarten im Einzelheiten zu den Schritten Bereich aus, um die Details der einzelnen Bundesstaaten einschließlich Eingabe, Ausgabe und Definition anzuzeigen. Einzelheiten zu den Ausführungsinformationen, die Sie auf der Seite mit den Ausführungsdetails einsehen können, finden Sie unterÜberblick über die Ausführungsdetails.

Anmerkung

Sie können Payloads auch übergeben, während Sie Lambda von einer Zustandsmaschine aus aufrufen. Weitere Informationen und Beispiele zum Aufrufen von Lambda durch Übergeben von Nutzdaten in das Feld finden Sie unter. Parameters Rufen Sie eine auf AWS Lambda Funktion mit Step Functions