

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
<a name="tutorial-creating-lambda-state-machine"></a>

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 ](state-task.md) 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:  
[Was ist Step Functions?](welcome.md)
[Integration von Diensten mit Step Functions](integrate-services.md)

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
<a name="create-lambda-function"></a>

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 ](https://console.aws.amazon.com/lambda/home) und wählen Sie Funktion ** erstellen. **

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

1. Geben Sie für **Function name** (Funktionsname) `HelloFunction` ein.

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

1. 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}}
   ```

1. 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](#start-lambda-function). Die Funktion gibt die zusammengestellte Begrüßung als Ausgabe zurück.

1. Wählen Sie **Bereitstellen**.

## Schritt 2: Testen Sie die Lambda-Funktion
<a name="test-lambda-function"></a>

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

1. Wählen Sie **Test** aus.

1. Geben Sie für **Event name (Ereignisname)** `HelloEvent` ein.

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

1. Wählen ** Sie Speichern ** und dann ** Testen**.

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

## Schritt 3: Erstellen Sie eine Zustandsmaschine
<a name="create-state-machine-step"></a>

Verwenden Sie die Step Functions-Konsole, um eine Zustandsmaschine zu erstellen, die die in [ Schritt 1 erstellte Lambda-Funktion aufruft. ](#create-lambda-function)

1. Öffnen Sie die [ Step Functions-Konsole](https://console.aws.amazon.com/states/home), 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.

1. Wählen Sie Aus ** leerem Feld ** erstellen.

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

1. Vergewissern Sie sich, dass Sie im [ Statusbrowser ](workflow-studio.md#workflow-studio-components-states) 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. **

1. Konfigurieren Sie im [Bereich „Inspektor“](workflow-studio.md#workflow-studio-components-formdefinition) Inspector-Bereich auf der rechten Seite die Lambda-Funktion:

   1. Wählen Sie im ** Abschnitt ** API-Parameter [ die Lambda-Funktion aus, die Sie zuvor ](#create-lambda-function) in der ** Dropdownliste ** Funktionsname erstellt haben.

   1. Behalten Sie die Standardauswahl in der Dropdownliste ** Payload ** bei.

1. (Optional) Wählen Sie ** Definition**, um die Definition der State Machine [Sprache der Amazonas-Staaten](concepts-amazon-states-language.md) (ASL) anzuzeigen, die automatisch auf der Grundlage Ihrer Auswahl auf der ** Registerkarte „**Aktionen“ und im Bereich „Inspector“ generiert wird. ** **

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

1. (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.

1. Wählen Sie **Erstellen** aus.

1. 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
<a name="start-lambda-function"></a>

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

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

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

   Das ** Dialogfeld Ausführung ** starten wird angezeigt.

1. (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.

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

1. Wählen Sie **Start Execution** aus.

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

1. 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](concepts-view-execution-details.md#exec-details-intf-step-details) 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](concepts-view-execution-details.md#exec-details-interface-overview).

**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](connect-lambda.md)