Erstellen eines -Schrittzustandsautomaten mithilfe vonAWS SAM - 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 eines -Schrittzustandsautomaten mithilfe vonAWS SAM

Diese Anleitung zeigt Ihnen, wie Sie eine AWS SAM-Beispielanwendung herunterladen, erstellen und bereitstellen, die einen AWS Step Functions-Zustandsautomaten 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:


            Ein Diagramm, das eine Lambda-Funktion zeigt, die aufgerufen wird, wenn Sie eine GET-Anforderung an den API Gateway-Endpunkt senden

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

In diesem Handbuch wird davon ausgegangen, dass Sie die Schritte unter Installieren der AWS SAM-CLI für Ihr Betriebssystem ausgeführt haben. Es wird davon ausgegangen, dass Sie Folgendes getan haben:

  1. Erstellt einAWSKonto.

  2. Konfigurieren von IAM-Berechtigungen.

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

  4. 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: Herunterladen eines BeispielsAWS SAMAnwendung

Befehl zum Ausführen:

sam init

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

  1. Vorlage: AWS Quick Start-Vorlagen

  2. Sprache: Python, Ruby, NodeJS, Go, Java oder .NET

  3. Projektname: (Name Ihrer Wahl – Standard ist sam-app)

  4. Quick Start-Anwendung: Mehrstufiger Arbeitsablauf

Was?AWS SAMVorgehensweise:

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 denAWS SAM-Vorlage, die Ihre Anwendung definiert, dieAWSRessourcen schätzen.

  • statemachine/stockTrader.asl.json: Enthält die Zustandsautomaten-Definition der Anwendung, die in Amazon States Language 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 dieAWS SAMVorlage. Beispielsweise ist das Verfolgen von Änderungen an der State-Machine-Definition einfacher, wenn Sie die Definition nicht in die Vorlage aufnehmen. Sie können Workflow Studio verwenden, um die State-Machine-Definition zu erstellen und zu verwalten und die Definition aus der Konsole direkt in die Amazon States Language-Spezifikationsdatei zu exportieren, ohne sie mit der Vorlage zusammenzuführen.

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

Schritt 2: Entwickeln der Anwendung

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 SAMVorgehensweise:

DieAWS SAMCLI enthält Abstraktionen für eine Reihe von Lambda-Laufzeitumgebungen, um Ihre Abhängigkeiten zu erstellen, und kopiert alle Build-Artefakte in Stagingordner, so dass alles bereit ist, verpackt 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: Bereitstellen der Anwendung auf demAWSCloud

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 SAMVorgehensweise:

Mit diesem Befehl wird Ihre Anwendung auf dem Server bereitgestellt, derAWScloud. Sie benötigen die Bereitstellungsartefakte, die Sie mit demsam build-Befehl, verpackt und lädt sie in einen Amazon S3 S3-Bucket, erstellt vonAWS SAMCLI und stellt die Anwendung mitAWS CloudFormation. In der Ausgabe des Deploy-Befehls können Sie die Änderungen sehen, die an Ihrem AWS CloudFormation-Stack vorgenommen werden.

Sie können überprüfen, ob der -Beispielzustandsautomat erfolgreich bereitgestellt wurde, indem Sie die folgenden Schritte ausführen:

  1. Melden Sie sich beim anAWS Management Consoleund öffne die Step Functions Konsole unterhttps://console.aws.amazon.com/states/.

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

  3. Suchen Sie Ihren neuen Zustandsautomaten in der Liste und wählen Sie ihn aus. Es wird benannt StockTradingStateMachine-<unique-hash>.

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

SAM CLI-Fehler: „keine solche Option: --guided“

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 Parameter --guided 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 Parameter --guided aus im Befehl sam deploy weglassen.

SAM-CLI-Fehler: „Fehler beim Erstellen verwalteter Ressourcen: Unable to locate credentials“

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 sich noch nicht eingerichtet haben.AWSAnmeldeinformationen zum Aktivieren derAWS SAMZu erstellende CLIAWSServiceeinsätze. Um dies zu beheben, müssen Sie die Einrichtung einrichten:AWS-Anmeldeinformationen. Weitere Informationen finden Sie unterEinrichtenAWSAnmeldeinformationenimAWS Serverless Application ModelEntwicklerhandbuch.

Bereinigen

Wenn Sie das nicht mehr benötigen, ist?AWSRessourcen, die Sie durch Ausführen dieses Tutorials erstellt haben, können Sie durch Löschen vonAWS CloudFormationStapel, den Sie bereitgestellt haben.

Gehen Sie folgendermaßen vor, um den AWS CloudFormation-Stack zu löschen, der mit diesem Tutorial über die AWS Management Console erstellt wurde:

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie im linken Navigationsbereich Stack aus.

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

  4. Wählen Sie Delete (Löschen).

Wenn Sie fertig sind, ändert sich der Status des Stacks in DELETE_COMPLETE.

Alternativ können Sie den AWS 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

Für beide Methoden zum Löschen derAWS CloudFormationStack, Sie können überprüfen, ob er gelöscht wurde, indem Sie aufhttps://console.aws.amazon.com/cloudformation, wählenStacksim linken Navigationsbereich, und wählen Sie die Option ausDeleted (Gelöscht)im Dropdown rechts neben dem Suchtextfeld aus. Sie sollten Ihren Stacknamen sam-app (oder den Namen des Stacks, den Sie erstellt haben) in der Liste der gelöschten Stacks sehen.