Testen von Step Functions undAWS SAMCLI Local - 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.

Testen von Step Functions undAWS SAMCLI Local

Mit beidenAWS Step FunctionsundAWS LambdaWährend auf Ihrem lokalen Rechner ausgeführt werden, können Sie Ihren Zustandsautomaten und die Lambda-Funktionen testen, ohne Ihren Code bereitstellen zu müssenAWSaus.

Weitere Informationen finden Sie unter den folgendenThemen:

Schritt 1: Einrichten von AWS SAM

AWS Serverless Application Model (AWS SAM) CLI Local erfordert, dass die AWS Command Line Interface, AWS SAM und Docker installiert sind.

  1. Installieren der AWS SAM-CLI.

    Anmerkung

    Bevor Sie die AWS SAM CLI installieren können, müssen Sie die AWS CLI und Docker installieren. Sehen Sie dieVoraussetzungenzum Installieren derAWS SAMCLI.

  2. Gehen Sie die AWS SAM Schnellstart-Dokumentation durch. Beachten Sie die Schritte zum Ausführen folgender Aufgaben:

    Dies schafft einsam-appund erstellt eine Umgebung, die eine Python-basierte Hello World Lambda-Funktion enthält.

Schritt 2: TestAWS SAMCLI Local

Nachdem Sie nun installiert habenAWS SAMund hat die Hello World Lambda-Funktion erstellt,Sie haben folgende MöglichkeitentestenDie Funktionaus. In dersam-appGeben Sie Folgendes einbeherrschen:

sam local start-api

Dadurch wird eine lokale Instance der Lambda-Funktion gestartet. Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

2019-01-31 16:40:27 Found credentials in shared credentials file: ~/.aws/credentials 2019-01-31 16:40:27 Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET] 2019-01-31 16:40:27 You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions changes will be reflected instantly/automatically. You only need to restart SAM CLI if you update your AWS SAM template 2019-01-31 16:40:27 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)

Öffnen Sie einen Browser und geben Sie Folgendes ein:

http://127.0.0.1:3000/hello

Dies gibt eine ähnliche Antwort auf Folgendes aus:

{"message": "hello world", "location": "72.21.198.66"}

Geben Sie ein.STRG+Cum die Lambda-API zu beenden.

Schritt 3: startenAWS SAMCLI Local

Nachdem Sie nun getestet haben, ob die Funktion funktioniert, starten Sie AWS SAM CLI Local. In dersam-appGeben Sie Folgendes ein-Befehl:

sam local start-lambda

Das fängt anAWS SAMund stellt den zu verwendenden Endpunkt bereit, ähnlich der folgenden Ausgabe:

2019-01-29 15:33:32 Found credentials in shared credentials file: ~/.aws/credentials 2019-01-29 15:33:32 Starting the Local Lambda Service. You can now invoke your Lambda Functions defined in your template through the endpoint. 2019-01-29 15:33:32 * Running on http://127.0.0.1:3001/ (Press CTRL+C to quit)

Schritt 4: Startschrittfunktionen lokal

JAR-Datei

Verwendetes.jarDateiversion von Step Functions Lokal, Start Step Functionsund spezifizierender Lambda-Endpunkt. In dem Verzeichnis, in dem Sie die.jarGeben Sie Folgendes ein-Befehl:

java -jar StepFunctionsLocal.jar --lambda-endpoint http://localhost:3001

Wenn Step Functions Local startet, werden sowohl die Umgebung als auch die konfigurierten Anmeldeinformationen in der~/.aws/credentialsfile. Standardmäßig wird einfiktiveBenutzer-ID und wird als aufgeführtregion us-east-1aus.

2019-01-29 15:38:06.324: Failed to load credentials from environment because Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY)) 2019-01-29 15:38:06.326: Loaded credentials from profile: default 2019-01-29 15:38:06.326: Starting server on port 8083 with account 123456789012, region us-east-1

Docker

Wenn Sie die Docker-Version von Step Functions Local verwenden, starten Sie Step Functions mit dem folgenden Befehl:

docker run -p 8083:8083 amazon/aws-stepfunctions-local

Weitere Informationen zum Installieren der Docker-Version von Step Functions finden Sie unterLokale Einrichtung von Stepaus.

Anmerkung

Sie können den Endpunkt über die Befehlszeile angeben oder durch Festlegen der Umgebungsvariablen, wenn Sie Step Functions vom.jarfile. Für die Docker-Version müssen Sie die Endpunkte und Anmeldeinformationen in einer Textdatei angeben. Siehe Einstellen der Konfigurationsoptionen für Step Functions lokal.

Schritt 5: Erstellen Sie einen Zustandsautomaten, der auf Ihre verweistAWS SAMCLI Local-Funktion

Nachdem Step Functions Local ausgeführt wird, erstellen Sie einen Zustandsautomaten, der auf dieHelloWorldFunction die du initialisiert hastSchritt 1: Einrichten von AWS SAMaus.

aws stepfunctions --endpoint http://localhost:8083 create-state-machine --definition "{\ \"Comment\": \"A Hello World example of the Amazon States Language using an AWS Lambda Local function\",\ \"StartAt\": \"HelloWorld\",\ \"States\": {\ \"HelloWorld\": {\ \"Type\": \"Task\",\ \"Resource\": \"arn:aws:lambda:us-east-1:123456789012:function:HelloWorldFunction\",\ \"End\": true\ }\ }\ }\ }}" --name "HelloWorld" --role-arn "arn:aws:iam::012345678901:role/DummyRole"

Dadurch wird ein Zustandsautomat erstellt und ein Amazon-Ressourcennamen (ARN) bereitgestellt, den Sie zum Starten einer Ausführung verwenden können.

{ "creationDate": 1548805711.403, "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }

Schritt 6: Starten Sie eine Ausführung Ihres Local State Machine

Nachdem Sie einen Zustandsautomaten erstellt haben, können Sie eine Ausführung startenaus. Sie müssen auf den ARN des Endpunkts und des Statusrechners verweisen, wenn Sie Folgendes verwendenaws stepfunctions-Befehl:

aws stepfunctions --endpoint http://localhost:8083 start-execution --state-machine arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld --name test

Dies beginnt eine Hinrichtunggenannttest von IhrenHelloWorldZustandsautomataus.

{ "startDate": 1548810641.52, "executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test" }

Nachdem Step Functions nun lokal ausgeführt wird, können Sie damit mithilfe derAWS CLIaus. Um beispielsweise Informationen zu dieser Ausführung zu erhalten, verwenden Sie Folgendes-Befehl:

aws stepfunctions --endpoint http://localhost:8083 describe-execution --execution-arn arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test

Calling (Anrufen)describe-executionfür eine Ausführung liefert weitere Details,ähnlich der folgenden Ausgabe:

{ "status": "SUCCEEDED", "startDate": 1549056334.073, "name": "test", "executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test", "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "stopDate": 1549056351.276, "output": "{\"statusCode\": 200, \"body\": \"{\\\"message\\\": \\\"hello world\\\", \\\"location\\\": \\\"72.21.198.64\\\"}\"}", "input": "{}" }