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.
Step-Funktionen und AWS SAM CLI Local testen
Wenn Sie beide AWS Step Functions auf Ihrem lokalen Computer AWS Lambda ausführen, können Sie Ihre State-Maschine und Lambda-Funktionen testen, ohne Ihren Code darauf bereitstellen zu müssen. AWS
Weitere Informationen finden Sie unter den folgenden Themen:
Themen
- Schritt 1: Einrichten von AWS SAM
- Schritt 2: Testen von AWS SAM CLI Local
- Schritt 3: Starten von AWS SAM CLI Local
- Schritt 4: Starten Sie Step Functions Local
- Schritt 5: Erstellen eines Zustandsautomaten, der auf die AWS SAM CLI Local-Funktion verweist
- Schritt 6: Die Ausführung des lokalen Zustandsautomaten starten
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.
-
Anmerkung
Bevor Sie die AWS SAM CLI installieren können, müssen Sie die AWS CLI und Docker installieren. Weitere Informationen finden Sie in den Voraussetzungen für die Installation der AWS SAM CLI.
-
Gehen Sie die AWS SAM Schnellstart-Dokumentation durch. Beachten Sie die Schritte zum Ausführen folgender Aufgaben:
Dadurch wird ein
sam-app
Verzeichnis erstellt und eine Umgebung erstellt, die eine Python-basierte Hello World Lambda-Funktion enthält.
Schritt 2: Testen von AWS SAM CLI Local
Nachdem Sie die Hello World Lambda-Funktion installiert AWS SAM und erstellt haben, können Sie die Funktion testen. Geben Sie den folgenden Befehl im Verzeichnis sam-app
ein:
sam local start-api
Dadurch wird eine lokale Instanz Ihrer Lambda-Funktion gestartet. Sie sollten eine Ausgabe sehen, die der folgenden ähnelt:
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
Dadurch wird eine Antwort ausgegeben, die der folgenden ähnelt:
{"message": "hello world", "location": "72.21.198.66"}
Geben Sie STRG+C ein, um die Lambda-API zu beenden.
Schritt 3: Starten von AWS SAM CLI Local
Nachdem Sie nun getestet haben, ob die Funktion funktioniert, starten Sie AWS SAM CLI Local. Geben Sie den folgenden Befehl im Verzeichnis sam-app
ein:
sam local start-lambda
Dadurch wird AWS SAM CLI Local gestartet und der zu verwendende Endpunkt bereitgestellt, ä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: Starten Sie Step Functions Local
JAR-Datei
Wenn Sie die .jar
Dateiversion von Step Functions Local verwenden, starten Sie Step Functions und geben Sie den Lambda-Endpunkt an. Geben Sie in dem Verzeichnis, in dem Sie die .jar
Dateien extrahiert haben, den folgenden Befehl ein:
java -jar StepFunctionsLocal.jar --lambda-endpoint http://localhost:3001
Wenn Step Functions Local gestartet wird, überprüft es die Umgebung und dann die in Ihrer ~/.aws/credentials
Datei konfigurierten Anmeldeinformationen. Standardmäßig verwendet es zunächst eine fiktive Benutzer-ID und wird als aufgeführt. region us-east-1
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
Hinweise zur Installation der Docker-Version von Step Functions finden Sie unterStep Functions lokal (herunterladbare Version) und Docker einrichten.
Anmerkung
Sie können den Endpunkt über die Befehlszeile oder durch Festlegen von Umgebungsvariablen angeben, wenn Sie Step Functions von der .jar
Datei aus starten. Für die Docker-Version müssen Sie die Endpunkte und Anmeldeinformationen in einer Textdatei angeben. Siehe Konfigurationsoptionen für Step Functions lokal einrichten.
Schritt 5: Erstellen eines Zustandsautomaten, der auf die AWS SAM CLI Local-Funktion verweist
Sobald Step Functions Local ausgeführt wird, erstellen Sie eine State-Maschine, die auf HelloWorldFunction
die verweist, in Schritt 1: Einrichten von AWS SAM der Sie initialisiert haben.
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 eine State-Maschine erstellt und ein Amazon Resource Name (ARN) bereitgestellt, mit dem Sie eine Ausführung starten können.
{
"creationDate": 1548805711.403,
"stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld"
}
Schritt 6: Die Ausführung des lokalen Zustandsautomaten starten
Sobald Sie eine State Machine erstellt haben, starten Sie eine Ausführung. Sie müssen den Endpunkt und den ARN der Statusmaschine referenzieren, wenn Sie den folgenden aws stepfunctions
Befehl verwenden:
aws stepfunctions --endpoint http://localhost:8083 start-execution --state-machine arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld --name test
Dadurch wird eine Ausführung mit dem Namen test
Ihrer HelloWorld
State-Maschine gestartet.
{
"startDate": 1548810641.52,
"executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test"
}
Jetzt, da Step Functions lokal läuft, können Sie mit dem Programm interagierenAWS CLI. Verwenden Sie beispielsweise den folgenden Befehl, um Informationen zu dieser Ausführung zu erhalten:
aws stepfunctions --endpoint http://localhost:8083 describe-execution --execution-arn arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test
Der Aufruf describe-execution
zur Ausführung liefert vollständigere Details, ähnlich wie bei 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": "{}"
}