Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Test di Step Functions e AWS SAM CLI Local
Con entrambi AWS Step Functions e AWS Lambda in esecuzione sul computer locale, puoi testare la tua State Machine e le funzioni Lambda senza distribuire il tuo codice su. AWS
Per ulteriori informazioni, consulta i seguenti argomenti:
Argomenti
- Fase 1: configurare AWS SAM
- Fase 2: esecuzione dei test per AWS SAM CLI Local
- Fase 3: avvio di AWS SAM CLI Local
- Fase 4: Avvia Step Functions Local
- Fase 5: creazione di una macchina a stati che faccia riferimento a una funzione AWS SAM CLI Local
- Fase 6: avviare un'esecuzione della macchina a stati locale.
Fase 1: configurare AWS SAM
AWS Serverless Application Model (AWS SAM) CLI Local richiede l'installazione di AWS Command Line Interface, AWS SAM e Docker.
-
Installazione della CLI AWS SAM.
Nota
Prima di installare la CLI AWS SAM, è necessario installare AWS CLI e Docker. Vedi Prerequisiti per l'installazione dell'interfaccia a riga di comando AWS SAM.
-
Vai alla documentazione Quick Start AWS SAM. Assicurati di seguire i passaggi per:
Questo crea una
sam-app
directory e crea un ambiente che include una funzione Hello World Lambda basata su Python.
Fase 2: esecuzione dei test per AWS SAM CLI Local
Ora che hai installato AWS SAM e creato la funzione Hello World Lambda, puoi testarla. Nella directory sam-app
, immettere il seguente comando:
sam local start-api
Viene avviata un'istanza locale della funzione Lambda. Dovresti vedere un output simile al seguente:
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)
Apri un browser e inserisci quanto segue:
http://127.0.0.1:3000/hello
Questo produrrà una risposta simile alla seguente:
{"message": "hello world", "location": "72.21.198.66"}
Inserisci CTRL+C per terminare l'API Lambda.
Fase 3: avvio di AWS SAM CLI Local
Dopo avere testato il corretto funzionamento della funzione, avviare AWS SAM CLI Local. Nella directory sam-app
, immettere il seguente comando:
sam local start-lambda
Questo avvia AWS SAM CLI Local e fornisce l'endpoint da utilizzare, simile al seguente output:
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)
Fase 4: Avvia Step Functions Local
File JAR
Se utilizzi la versione .jar
file di Step Functions Local, avvia Step Functions e specifica l'endpoint Lambda. Nella directory in cui hai estratto i .jar
file, inserisci il seguente comando:
java -jar StepFunctionsLocal.jar --lambda-endpoint http://localhost:3001
All'avvio di Step Functions Local, verifica l'ambiente e quindi le credenziali configurate nel file~/.aws/credentials
. Per impostazione predefinita, inizia a utilizzare un ID utente fittizio ed è elencato come. 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
Se stai utilizzando la versione Docker di Step Functions Local, avvia Step Functions con il seguente comando:
docker run -p 8083:8083 amazon/aws-stepfunctions-local
Per informazioni sull'installazione della versione Docker di Step Functions, vedereConfigurazione di Step Functions Local (versione scaricabile) e Docker.
Nota
È possibile specificare l'endpoint tramite la riga di comando o impostando le variabili di ambiente se si avvia Step Functions dal .jar
file. Per la versione Docker, è necessario specificare gli endpoint e le credenziali in un file di testo. Consultare Impostazione delle opzioni di configurazione per Step Functions Local.
Fase 5: creazione di una macchina a stati che faccia riferimento a una funzione AWS SAM CLI Local
Una volta che Step Functions Local è in esecuzione, crea una macchina a stati che faccia riferimento a HelloWorldFunction
quella in Fase 1: configurare AWS SAM cui hai inizializzato.
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"
Questo creerà una macchina a stati e fornirà un Amazon Resource Name (ARN) che puoi utilizzare per avviare un'esecuzione.
{
"creationDate": 1548805711.403,
"stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld"
}
Fase 6: avviare un'esecuzione della macchina a stati locale.
Dopo aver creato una macchina a stati, avvia un'esecuzione. Dovrai fare riferimento all'endpoint e all'ARN della macchina a stati quando usi il seguente comando: aws stepfunctions
aws stepfunctions --endpoint http://localhost:8083 start-execution --state-machine arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld --name test
Questo avvia un'esecuzione denominata test
della tua macchina a HelloWorld
stati.
{
"startDate": 1548810641.52,
"executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test"
}
Ora che Step Functions è in esecuzione localmente, puoi interagire con esso utilizzando ilAWS CLI. Ad esempio, per ottenere informazioni su questa esecuzione, utilizzare il seguente comando:
aws stepfunctions --endpoint http://localhost:8083 describe-execution --execution-arn arn:aws:states:us-east-1:123456789012:execution:HelloWorld:test
La describe-execution
richiesta di esecuzione fornisce dettagli più completi, simili al seguente output:
{
"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": "{}"
}