Testar máquinas de estado com Step Functions Local (sem suporte)
O Step Functions Local não é compatível
O Step Functions Local não fornece paridade de recursos e não é compatível.
Considere usar soluções de terceiros que emulam o Step Functions para fins de teste.
Com o AWS Step Functions Local, uma versão para download do Step Functions, você pode testar aplicações com o Step Functions em execução em seu próprio ambiente de desenvolvimento.
Ao executar o Step Functions Local, você pode usar uma das seguintes formas de invocar integrações de serviços:
-
Configurando endpoints locais para AWS Lambda e outros serviços.
-
Fazer chamadas diretamente para um serviço AWS do Step Functions Local.
-
Simulando a resposta das integrações de serviços.
O Step Functions Local AWS está disponível como um pacote JAR ou uma imagem do Docker independente que é executada no Microsoft Windows, Linux, macOS e outras plataformas compatíveis com Java ou Docker.
Atenção
Você só deve usar o Step Functions Local para testes e nunca para fazer o processamento de informações confidenciais.
Tópicos
Configurar o Step Functions Local (versão para download) no Docker
A imagem do Docker do Step Functions Local permite que você comece a usar rapidamente o Step Functions Local usando uma imagem do Docker com todas as dependências necessárias. A imagem do Docker permite incluir o Step Functions Local em compilações em contêineres e como parte dos testes de integração contínua.
Para obter a imagem do Docker para o Step Functions Local, acesse https://hub.docker.com/r/amazon/aws-stepfunctions-localpull do Docker.
docker pull amazon/aws-stepfunctions-local
Para iniciar a versão para download do Step Functions no Docker, execute o seguinte comando run do Docker
docker run -p 8083:8083 amazon/aws-stepfunctions-local
Para interagir com o AWS Lambda ou outros serviços compatíveis, é necessário configurar suas credenciais e outras opções de configuração primeiro. Para obter mais informações, consulte os tópicos a seguir.
Configuração do Step Functions Local (versão para download) - Versão Java
A versão disponível para download do AWS Step Functions é fornecida como um arquivo JAR executável e como uma imagem do Docker. O aplicativo Java é executado no Windows, Linux, macOS e outras plataformas compatíveis com Java. Além do Java, será necessário instalar a AWS Command Line Interface (AWS CLI). Para obter mais informações sobre a instalação e a configuração da AWS CLI, consulte o Guia do usuário da AWS Command Line Interface.
Como configurar e executar o Step Functions no computador
-
Faça download do Step Functions usando os seguintes links.
Links para fazer download Soma de verificação .tar.gz .tar.gz.md5 .zip .zip.md5 -
Extraia o arquivo
.zip. -
Teste o download e visualize as informações da versão.
$ java -jar StepFunctionsLocal.jar -v Step Function Local Version: 2.0.0 Build: 2024-05-18 -
(Opcional) Visualize uma lista de comandos disponíveis.
$ java -jar StepFunctionsLocal.jar -h -
Para iniciar o Step Functions em seu computador, abra uma janela de prompt de comando, vá até o diretório onde você extraiu o
StepFunctionsLocal.jare insira o seguinte comando.java -jar StepFunctionsLocal.jar -
Para acessar o Step Functions em execução localmente, use o parâmetro
--endpoint-url. Por exemplo, ao usar a AWS CLI, você especificaria os comandos do Step Functions assim:aws stepfunctions --endpoint-url http://localhost:8083command
nota
Por padrão, o Step Functions Local usa uma conta de teste e credenciais locais e a Região da AWS é definida como Leste dos EUA (Norte da Virgínia). Para usar o Step Functions Local com o AWS Lambda ou outros serviços compatíveis, é necessário configurar suas credenciais e sua região.
Se você usar fluxos de trabalho expressos com o Step Functions Local, o histórico de execuções será armazenado em um arquivo de log. Ele não está logado no CloudWatch Logs. O caminho do arquivo de log será baseado no ARN do grupo de logs do CloudWatch Logs fornecido ao criar a máquina de estado local. O arquivo de log será armazenado no /aws/states/log-group-name/ relativo ao local em que você estiver executando o Step Functions Local. Por exemplo, se o ARN de execução for:${execution_arn}.log
arn:aws:states:region:account-id:express:test:example-ExpressLogGroup-wJalrXUtnFEMI
o arquivo de log será:
aws/states/log-group-name/arn:aws:states:region:account-id:express:test:example-ExpressLogGroup-wJalrXUtnFEMI.log
Definindo opções de configuração para Step Functions Local
Ao iniciar o AWS Step Functions Local usando o arquivo JAR, é possível definir as opções de configuração usando a AWS Command Line Interface (AWS CLI) ou incluindo-as no ambiente do sistema. Para o Docker, você deve especificar essas opções em um arquivo ao qual faz referência ao iniciar o Step Functions Local.
Opções de configuração
Quando você configura o contêiner do Step Functions Local para usar um endpoint de substituição, como Lambda Endpoint e Batch Endpoint, e faz chamadas para esse endpoint, o Step Functions Local não usa as credenciais que você especifica. Definir essas substituições de endpoint é opcional.
| Opção | Linha de comando | Environment |
|---|---|---|
| Conta | -account, --aws-account | AWS_ACCOUNT_ID |
| Região | -region, --aws-region | AWS_DEFAULT_REGION |
| Aguardar escala de tempo | -waitTimeScale, --wait-time-scale | WAIT_TIME_SCALE |
| Endpoint do Lambda | -lambdaEndpoint, --lambda-endpoint | LAMBDA_ENDPOINT |
| Endpoint do Batch | -batchEndpoint, --batch-endpoint | BATCH_ENDPOINT |
| Endpoint do DynamoDB | -dynamoDBEndpoint, --dynamodb-endpoint | DYNAMODB_ENDPOINT |
| Endpoint do ECS | -ecsEndpoint, --ecs-endpoint | ECS_ENDPOINT |
| Endpoint do Glue | -glueEndpoint, --glue-endpoint | GLUE_ENDPOINT |
| Endpoint do SageMaker | -sageMakerEndpoint, --sagemaker-endpoint | SAGE_MAKER_ENDPOINT |
| Endpoint do SQS | -sqsEndpoint, --sqs-endpoint | SQS_ENDPOINT |
| Endpoint do SNS | -snsEndpoint, --sns-endpoint | SNS_ENDPOINT |
| Endpoint do Step Functions | -stepFunctionsEndpoint, --step-functions-endpoint | STEP_FUNCTIONS_ENDPOINT |
Credenciais e configuração para o Docker
Para configurar o Step Functions Local para o Docker, crie o seguinte arquivo: aws-stepfunctions-local-credentials.txt.
Esse arquivo contém suas credenciais e outras opções de configuração. O seguinte pode ser usado como modelo ao criar o arquivo aws-stepfunctions-local-credentials.txt.
AWS_DEFAULT_REGION=AWS_REGION_OF_YOUR_AWS_RESOURCESAWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEYAWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_KEYWAIT_TIME_SCALE=VALUELAMBDA_ENDPOINT=VALUEBATCH_ENDPOINT=VALUEDYNAMODB_ENDPOINT=VALUEECS_ENDPOINT=VALUEGLUE_ENDPOINT=VALUESAGE_MAKER_ENDPOINT=VALUESQS_ENDPOINT=VALUESNS_ENDPOINT=VALUESTEP_FUNCTIONS_ENDPOINT=VALUE
Depois de configurar suas credenciais e opções de configuração em aws-stepfunctions-local-credentials.txt, inicie o Step Functions com o seguinte comando.
docker run -p 8083:8083 --env-file aws-stepfunctions-local-credentials.txt amazon/aws-stepfunctions-local
nota
É recomendável usar o nome DNS especial host.docker.internal, que é resolvido para o endereço IP interno que o host usa, como http://host.docker.internal:8000. Para obter mais informações, consulte a documentação do Docker para Mac e Windows em Recursos de rede no Docker Desktop para Mac
Executando o Step Functions Local em seu computador
Use a versão local do Step Functions para configurar, desenvolver e testar máquinas de estado em seu computador.
Executar uma máquina de estado HelloWorld localmente
Depois de executar o Step Functions localmente com a AWS Command Line Interface (AWS CLI), é possível iniciar uma execução da máquina de estado.
-
Crie uma máquina de estado a partir da AWS CLI fazendo o escape da definição de máquina de estado.
aws stepfunctions --endpoint-url http://localhost:8083 create-state-machine --definition "{\ \"Comment\": \"A Hello World example of the Amazon States Language using a Pass state\",\ \"StartAt\": \"HelloWorld\",\ \"States\": {\ \"HelloWorld\": {\ \"Type\": \"Pass\",\ \"End\": true\ }\ }}" --name "HelloWorld" --role-arn "arn:aws:iam::012345678901:role/DummyRole"nota
O
role-arnnão é usado para o Step Functions Local, mas é necessário incluí-lo com a sintaxe adequada. É possível usar o nome de recurso da Amazon (ARN) do exemplo anterior.Se você criou a máquina de estado com êxito, o Step Functions responde com a data de criação e o ARN da máquina de estado.
{ "creationDate": 1548454198.202, "stateMachineArn": "arn:aws:states:region:account-id:stateMachine:HelloWorld" } -
Inicie uma execução usando o ARN da máquina de estado que você criou.
aws stepfunctions --endpoint-url http://localhost:8083 start-execution --state-machine-arn arn:aws:states:region:account-id:stateMachine:HelloWorld
Step Functions Local com AWS SAM CLI Local
É possível usar a versão local do Step Functions com uma versão local do AWS Lambda. Para configurar isso, é necessário instalar e configurar o AWS SAM.
Para obter informações sobre como configurar e executar o AWS SAM, consulte o seguinte:
Assim que o Lambda estiver em execução no sistema local, será possível iniciar o Step Functions Local. No diretório em que você extraiu os arquivos JAR locais do Step Functions, inicie o Step Functions Local e use o parâmetro --lambda-endpoint para configurar o endpoint Lambda local.
java -jar StepFunctionsLocal.jar --lambda-endpoint http://127.0.0.1:3001 command
Para obter mais informações sobre como executar o Step Functions Local com o AWS Lambda, consulte Tutorial: testar fluxos de trabalho usando o Step Functions e a CLI do AWS SAM local.