

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 Sie eine Step Functions Functions-Zustandsmaschine mit AWS SAM
<a name="tutorial-state-machine-using-sam"></a>

In diesem Handbuch laden Sie eine AWS SAM Beispielanwendung herunter, erstellen und implementieren sie, die eine AWS Step Functions Zustandsmaschine enthält. Diese Anwendung erstellt einen Pseudo-Aktienhandel-Workflow, der nach einem vordefinierten Zeitplan ausgeführt wird (beachten Sie, dass der Zeitplan standardmäßig deaktiviert ist, um Gebühren zu vermeiden).

Das folgende Diagramm zeigt die Komponenten dieser Anwendung:

![\[Diagramm, das den Arbeitsablauf für dieses Tutorial zeigt.\]](http://docs.aws.amazon.com/de_de/step-functions/latest/dg/images/sam-starter-template-docs.png)


Im Folgenden finden Sie eine Vorschau der Befehle, die Sie zum Erstellen der Beispielanwendung ausführen. Weitere Informationen zu den einzelnen Befehlen finden Sie in den Abschnitten weiter unten auf dieser Seite.

```
# Step 1 - Download a sample application. For this tutorial you
#   will follow the prompts to select an AWS Quick Start Template
#   called 'Multi-step workflow'
sam init

# Step 2 - Build your application
cd project-directory
sam build

# Step 3 - Deploy your application
sam deploy --guided
```

## Voraussetzungen
<a name="tutorial-state-machine-using-sam-prerequisites"></a>

In diesem Handbuch wird davon ausgegangen, dass Sie die Schritte unter [Installation der AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) für Ihr Betriebssystem abgeschlossen haben. Es wird davon ausgegangen, dass Sie Folgendes getan haben:

1. Hat ein AWS Konto erstellt.

1. Konfigurierte IAM-Berechtigungen.

1. Homebrew wurde installiert. Hinweis: Homebrew ist nur eine Voraussetzung für Linux und macOS.

1. Die AWS SAM CLI wurde installiert. Hinweis: Stellen Sie sicher, dass Sie Version 0.52.0 oder höher besitzen. Sie können überprüfen, über welche Version Sie verfügen, indem Sie den Befehl `sam --version` ausführen.

## Schritt 1: Laden Sie eine AWS SAM Beispielanwendung herunter
<a name="tutorial-state-machine-using-sam-initialize"></a>

**Befehl zum Ausführen:**

```
sam init
```

Folgen Sie den Anweisungen auf dem Bildschirm, um Folgendes auszuwählen:

1. **Vorlage:** AWS Schnellstart-Vorlagen

1. **Sprache:** Python, Ruby, NodeJS, Go, Java oder .NET

1. **Projektname:** (Name Ihrer Wahl – Standard ist `sam-app`)

1. **Schnellstart-Anwendung:** Mehrstufiger Arbeitsablauf

**Was AWS SAM macht:**

Mit diesem Befehl wird ein Verzeichnis mit dem Namen erstellt, den Sie für die Eingabeaufforderung „Projektname“ angegeben haben (Standardeinstellung ist `sam-app`). Der spezifische Inhalt des Verzeichnisses hängt von der gewählten Sprache ab.

Im Folgenden sind die Verzeichnisinhalte aufgeführt, wenn Sie eine der Python-Laufzeitumgebungen auswählen:

```
├── README.md
├── functions
│   ├── __init__.py
│   ├── stock_buyer
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   ├── stock_checker
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   └── stock_seller
│       ├── __init__.py
│       ├── app.py
│       └── requirements.txt
├── statemachine
│   └── stock_trader.asl.json
├── template.yaml
└── tests
    └── unit
        ├── __init__.py
        ├── test_buyer.py
        ├── test_checker.py
        └── test_seller.py
```

Es gibt zwei besonders interessante Dateien, die Sie sich ansehen können:
+ `template.yaml`: Enthält die AWS SAM Vorlage, die die AWS Ressourcen Ihrer Anwendung definiert.
+ `statemachine/stockTrader.asl.json`: Enthält die Zustandsautomaten-Definition der Anwendung, die in [Verwendung von Amazon States Language zur Definition von Step Functions Functions-Workflows](concepts-amazon-states-language.md) geschrieben ist.

Sie können den folgenden Eintrag in der `template.yaml`-Datei sehen, der auf die Definitionsdatei des Zustandsautomaten verweist:



```
    Properties:
      DefinitionUri: statemachine/stock_trader.asl.json
```

Es kann hilfreich sein, die State-Machine-Definition als separate Datei beizubehalten, anstatt sie in die AWS SAM Vorlage einzubetten. Beispielsweise ist es einfacher, Änderungen an der Zustandsmaschinen-Definition nachzuverfolgen, wenn Sie die Definition nicht in die Vorlage aufnehmen. Sie können Workflow Studio verwenden, um die Zustandsmaschinen-Definition zu erstellen und zu verwalten und die Definition aus der Konsole direkt in die Sprachspezifikationsdatei von Amazon States zu exportieren, ohne sie mit der Vorlage zusammenzuführen.

Weitere Informationen zur Beispielanwendung finden Sie in der Datei `README.md` im Projektverzeichnis.

## Schritt 2: Erstellen Ihrer Anwendung
<a name="tutorial-state-machine-using-sam-build"></a>

**Befehl zum Ausführen:**

Wechseln Sie zuerst in das Projektverzeichnis (d. h. das Verzeichnis, in dem sich die `template.yaml`-Datei für die Beispielanwendung befindet; standardmäßig `sam-app`) und führen Sie dann folgenden Befehl aus:

```
sam build
```

**Beispielausgabe:**

```
  
 Build Succeeded

 Built Artifacts  : .aws-sam/build
 Built Template   : .aws-sam/build/template.yaml

 Commands you can use next
 =========================
 [*] Invoke Function: sam local invoke
 [*] Deploy: sam deploy --guided
```

**Was AWS SAM macht:**

Die AWS SAM CLI enthält Abstraktionen für eine Reihe von Lambda-Laufzeiten zum Erstellen Ihrer Abhängigkeiten und kopiert alle Build-Artefakte in Staging-Ordner, sodass alles bereit ist, gepackt und bereitgestellt zu werden. Der `sam build`-Befehl erstellt alle Abhängigkeiten Ihrer Anwendung und kopiert die Build-Artefakte in Ordner unter `.aws-sam/build`.

## Schritt 3: Stellen Sie Ihre Anwendung in der Cloud bereit AWS
<a name="tutorial-state-machine-using-sam-deploy"></a>

**Befehl zum Ausführen:**

```
sam deploy --guided
```

Folgen Sie den Anweisungen auf dem Bildschirm. Sie können einfach mit `Enter` antworten, um die in der interaktiven Erfahrung bereitgestellten Standardoptionen zu akzeptieren.

**Was AWS SAM macht:**

Dieser Befehl stellt Ihre Anwendung in der AWS Cloud bereit. Es nimmt die Bereitstellungsartefakte, die Sie mit dem `sam build` Befehl erstellen, packt sie und lädt sie in einen von AWS SAM CLI erstellten Amazon S3 S3-Bucket hoch und stellt die Anwendung mithilfe von bereit. CloudFormation In der Ausgabe des Deploy-Befehls können Sie die Änderungen sehen, die an Ihrem CloudFormation -Stack vorgenommen werden.

Sie können überprüfen, ob die Step Functions Functions-Beispiel-Zustandsmaschine erfolgreich bereitgestellt wurde, indem Sie die folgenden Schritte ausführen:

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Step Functions Functions-Konsole unter [https://console.aws.amazon.com/states/](https://console.aws.amazon.com/states/).

1. Wählen Sie in der linken Navigation die Option **Zustandsautomaten** aus.

1. Suchen Sie Ihren neuen Zustandsautomaten in der Liste und wählen Sie ihn aus. Sie wird den Namen StockTradingStateMachine - tragen*<unique-hash>*.

1. Wählen Sie die Registerkarte **Definition**.

Sie sollten nun eine visuelle Darstellung Ihres Zustandsautomaten sehen. Sie können überprüfen, ob die visuelle Darstellung mit der Zustandsautomatendefinition in der Datei `statemachine/stockTrader.asl.json` Ihres Projektverzeichnisses übereinstimmt.

## Fehlerbehebung
<a name="tutorial-state-machine-using-sam-troubleshooting"></a>

### SAM CLI-Fehler: „keine solche Option: --guided“
<a name="tutorial-state-machine-using-sam-troubleshooting-guided"></a>

Bei der Ausführung von `sam deploy` wird der folgende Fehler angezeigt:

```
 
Error: no such option: --guided
```

Dies bedeutet, dass Sie eine ältere Version der AWS SAM CLI verwenden, die den `--guided` Parameter nicht unterstützt. Um dies zu beheben, können Sie entweder Ihre Version von AWS SAM CLI auf 0.33.0 oder höher aktualisieren oder den `--guided` Parameter im Befehl weglassen. `sam deploy`

### SAM-CLI-Fehler: „Fehler beim Erstellen verwalteter Ressourcen: Anmeldeinformationen konnten nicht gefunden werden“
<a name="tutorial-state-machine-using-sam-troubleshooting-credentials"></a>

Bei der Ausführung von `sam deploy` wird der folgende Fehler angezeigt:

```
 
Error: Failed to create managed resources: Unable to locate credentials
```

Das bedeutet, dass Sie keine AWS Anmeldeinformationen eingerichtet haben, damit die AWS SAM CLI AWS Serviceanfragen tätigen kann. Um dieses Problem zu beheben, müssen Sie AWS Anmeldeinformationen einrichten. Weitere Informationen finden Sie unter [AWS Anmeldeinformationen einrichten](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-set-up-credentials.html) im *AWS Serverless Application Model Entwicklerhandbuch*.

## Bereinigen
<a name="tutorial-state-machine-using-sam-cleanup"></a>

Wenn Sie die AWS Ressourcen, die Sie in diesem Tutorial erstellt haben, nicht mehr benötigen, können Sie sie entfernen, indem Sie den bereitgestellten CloudFormation Stack löschen.

Gehen Sie folgendermaßen vor, um den mit diesem Tutorial erstellten CloudFormation Stack mithilfe von zu löschen: AWS-Managementkonsole

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie im linken Navigationsbereich **Stack** aus.

1. Wählen Sie in der Liste der Stacks **sam-app** (oder den Namen des von Ihnen erstellten Stacks) aus.

1. Wählen Sie **Löschen** aus.

Wenn Sie fertig sind, ändert sich der Status des Stacks in **DELETE\$1COMPLETE**.

Alternativ können Sie den CloudFormation Stack löschen, indem Sie den folgenden AWS CLI Befehl ausführen:

```
aws cloudformation delete-stack --stack-name sam-app --region region
```

### Gelöschten Stack überprüfen
<a name="tutorial-state-machine-using-sam-cleanup-verify"></a>

Bei beiden Methoden zum Löschen des CloudFormation Stacks können Sie überprüfen, ob er gelöscht wurde, indem Sie zu [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) gehen, im linken Navigationsbereich **Stacks** auswählen und in der Dropdownliste rechts neben dem Suchtextfeld die Option **Gelöscht** auswählen. Sie sollten Ihren Stacknamen **sam-app** (oder den Namen des Stacks, den Sie erstellt haben) in der Liste der gelöschten Stacks sehen.