

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.

# Eine Step Functions Functions-Zustandsmaschine erstellen, die Lambda verwendet
<a name="tutorial-creating-lambda-state-machine"></a>

In diesem Tutorial erstellen Sie einen einstufigen Workflow, mit dem AWS Step Functions Sie eine Funktion aufrufen. AWS Lambda 

**Anmerkung**  
Step Functions basiert auf *Zustandsmaschinen* und *Aufgaben*. In Step Functions werden Zustandsmaschinen als *Workflows* bezeichnet. Dabei handelt es sich um eine Reihe von ereignisgesteuerten Schritten. *Jeder Schritt in einem Workflow wird als Status bezeichnet.* Ein [Aufgabenstatus](state-task.md) steht beispielsweise für eine Arbeitseinheit, die ein anderer AWS Dienst ausführt, z. B. das Aufrufen eines anderen Dienstes AWS-Service oder einer API. Instanzen, in denen Workflows ausgeführt werden, die Aufgaben ausführen, 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 Lieblingseditor schreiben. AWS kümmert sich um die Einzelheiten 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 **Create function**.

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 Amazon-Ressourcennamen (ARN) der Funktion, der in der oberen rechten Ecke der Seite angezeigt wird. Im Folgenden finden Sie ein Beispiel für einen ARN:

   ```
   arn:aws:lambda:region:123456789012:function:HelloFunction
   ```

1. Kopieren Sie den folgenden Code für die Lambda-Funktion in den Abschnitt **Codequelle** der ***HelloFunction***Seite.

   ```
   export const handler = async(event, context, callback) => {
       callback(null, "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 `callback`-Methode gibt die erstellte Grußformel aus Ihrer Funktion 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 die folgenden.

   ```
   {
       "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 Ihre Zustandsmaschine ausführen.

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

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 Functions-Konsole, um eine Zustandsmaschine zu erstellen, die die Lambda-Funktion aufruft, die Sie in [Schritt](#create-lambda-function) 1 erstellt haben.

1. Öffnen Sie die [Step Functions Functions-Konsole](https://console.aws.amazon.com/states/home), wählen Sie im Menü **State Machines** und dann **Create State Machine** aus.
**Wichtig**  
Stellen Sie sicher, dass sich Ihr State Machine unter demselben AWS Konto und derselben Region befindet wie die zuvor erstellte Lambda-Funktion.

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

1. Geben Sie Ihrem Zustandsmaschine einen Namen 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 & Drop in den leeren Status mit der Bezeichnung **Drag first state here**.

1. Konfigurieren Sie im [Inspektor-Panel](workflow-studio.md#workflow-studio-components-formdefinition) 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](#create-lambda-function) haben.

   1. Behalten Sie die Standardauswahl in der **Payload-Dropdown-Liste** bei.

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

1. Geben Sie einen Namen für Ihre Zustandsmaschine ein. Wählen Sie dazu das Bearbeitungssymbol neben dem Standardnamen der Zustandsmaschine von **MyStateMachine**. Geben Sie dann unter **State-Machine-Konfiguration** einen Namen in das Feld **State-Machine-Name** ein.

   Geben Sie beispielsweise den Namen **LambdaStateMachine** ein.
**Anmerkung**  
Die Namen von Zustandsmaschinen, Ausführungen und Aktivitätsaufgaben dürfen nicht länger als 80 Zeichen sein. Diese Namen müssen für Ihr Konto und Ihre AWS Region eindeutig sein und dürfen keine der folgenden Angaben enthalten:  
Leerraum
Platzhalterzeichen () `? *`
Klammerzeichen () `< > { } [ ]`
Sonderzeichen (`" # % \ ^ | ~ ` $ & , ; : /`)
Steuerzeichen (`\\u0000`- `\\u001f` oder `\\u007f` -`\\u009f`).
Step Functions akzeptiert Namen für Zustandsmaschinen, Ausführungen, Aktivitäten und Beschriftungen, die Nicht-ASCII-Zeichen enthalten. Da solche Zeichen Amazon CloudWatch daran hindern, Daten zu protokollieren, empfehlen wir, nur ASCII-Zeichen zu verwenden, damit Sie die Step Functions Functions-Metriken verfolgen können.

1. (Optional) Geben Sie unter **State-Machine-Konfiguration** weitere Workflow-Einstellungen an, z. B. den Zustandsmaschinentyp und seine 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 mehr neu erstellen. Ebenso kann Step Functions ihre 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 die Zustandsmaschine aus
<a name="start-lambda-function"></a>

Nachdem Sie Ihren Zustandsmaschine erstellt haben, können Sie ihn 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.
**Nicht-ASCII-Namen und Protokollierung**  
Step Functions akzeptiert Namen für Zustandsmaschinen, Ausführungen, Aktivitäten und Beschriftungen, die Nicht-ASCII-Zeichen enthalten. Da solche Zeichen Amazon CloudWatch daran hindern, Daten zu protokollieren, empfehlen wir, nur ASCII-Zeichen zu verwenden, damit Sie die Step Functions Functions-Metriken 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 wird gestartet, und eine neue Seite mit Ihrer laufenden Ausführung wird angezeigt.

1. Die Step Functions 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 im Verlauf der Ausführung oder nach deren Abschluss überprüfen.

   Um die Ausführungsergebnisse zu überprüfen, wählen Sie in der **Diagrammansicht** einzelne Status aus und wählen Sie dann die einzelnen Registerkarten im [Einzelheiten zu den Schritten](concepts-view-execution-details.md#exec-details-intf-step-details) Bereich, um die Details der einzelnen Status, 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 auch Nutzlasten übergeben, während Sie Lambda von einer Zustandsmaschine aufrufen. Weitere Informationen und Beispiele zum Aufrufen von Lambda durch Übergabe von Nutzdaten in das `Parameters` Feld finden Sie unter. [Rufen Sie eine AWS Lambda Funktion mit Step Functions auf](connect-lambda.md)