Testando máquinas de estado com Step Functions Local (não suportado) - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Testando máquinas de estado com Step Functions Local (não suportado)

Step Functions Local não é suportado

O Step Functions Local não fornece paridade de recursos e não é suportado.

Você pode considerar soluções de terceiros que emulam Step Functions para fins de teste.

Com o AWS Step Functions Local, uma versão disponível para download do Step Functions, você pode testar aplicativos 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 AWS serviço do Step Functions Local.

  • Simulando a resposta das integrações de serviços.

AWS O Step Functions Local está disponível como um JAR pacote ou uma imagem autônoma do Docker que é executada no Microsoft Windows, Linux, macOS e outras plataformas que suportam Java ou Docker.

Atenção

Você só deve usar o Step Functions Local para testar e nunca para processar informações confidenciais.

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 Step Functions Local, consulte https://hub.docker.com/r/amazon/ aws-stepfunctions-local ou digite o seguinte comando do Docker. pull

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 AWS Lambda ou com outros serviços compatíveis, você precisa primeiro configurar suas credenciais e outras opções de configuração. 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 para download do AWS Step Functions é fornecida como um JAR arquivo 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, você precisa instalar o AWS Command Line Interface (AWS CLI). Para obter informações sobre como instalar e configurar o AWS CLI, consulte o Guia do AWS Command Line Interface usuário.

Como configurar e executar o Step Functions no computador
  1. 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
  2. Extraia o arquivo .zip.

  3. 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
  4. (Opcional) Visualize uma lista de comandos disponíveis.

    $ java -jar StepFunctionsLocal.jar -h
  5. 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.jar e insira o seguinte comando.

    java -jar StepFunctionsLocal.jar
  6. Para acessar o Step Functions em execução localmente, use o parâmetro --endpoint-url. Por exemplo, usando o AWS CLI, você especificaria os comandos Step Functions da seguinte forma:

    aws stepfunctions --endpoint-url http://localhost:8083 command
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 AWS Lambda, ou outros serviços suportados, você deve 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á registrado no CloudWatch Logs. O caminho do arquivo de log será baseado no grupo de CloudWatch registros de registros ARN fornecido quando você criar a máquina de estado local. O arquivo de log será armazenado no /aws/states/log-group-name/${execution_arn}.log relativo ao local em que você estiver executando o Step Functions Local. Por exemplo, se a execução ARN for:

arn:aws:states:us-east-1:123456789012:express:test:example-ExpressLogGroup-wJalrXUtnFEMI

o arquivo de log será:

aws/states/log-group-name/arn:aws:states:us-east-1:123456789012: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 JAR arquivo, você pode definir as opções de configuração usando o 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
SageMaker Ponto final -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_RESOURCES AWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEY AWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_KEY WAIT_TIME_SCALE=VALUE LAMBDA_ENDPOINT=VALUE BATCH_ENDPOINT=VALUE DYNAMODB_ENDPOINT=VALUE ECS_ENDPOINT=VALUE GLUE_ENDPOINT=VALUE SAGE_MAKER_ENDPOINT=VALUE SQS_ENDPOINT=VALUE SNS_ENDPOINT=VALUE STEP_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 DNS nome especialhost.docker.internal, que é resolvido para o endereço IP interno que o host usa, comohttp://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 e Recursos de rede no Docker Desktop para Windows, respectivamente.

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.

Execute uma máquina de HelloWorld estado localmente

Depois de executar Step Functions localmente com o AWS Command Line Interface (AWS CLI), você pode iniciar a execução de uma máquina de estado.

  1. Crie uma máquina de estado a partir do AWS CLI escapando da definição da 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-arn não é usado para o Step Functions Local, mas é necessário incluí-lo com a sintaxe adequada. Você pode usar o Amazon Resource Name (ARN) do exemplo anterior.

    Se você criar com sucesso a máquina de estado, o Step Functions responderá com a data de criação e a máquina de ARN estado.

    { "creationDate": 1548454198.202, "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }
  2. Inicie uma execução usando a máquina ARN de estado que você criou.

    aws stepfunctions --endpoint-url http://localhost:8083 start-execution --state-machine-arn arn:aws:states:us-east-1:123456789012: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 configuração e execuçã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 seus JAR arquivos locais do Step Functions, inicie o Step Functions Local e use o --lambda-endpoint parâmetro para configurar o endpoint local do Lambda.

java -jar StepFunctionsLocal.jar --lambda-endpoint http://127.0.0.1:3001 command

Para obter mais informações sobre a execução do Step Functions Local com AWS Lambda, consulteTutorial: Testando fluxos de trabalho usando Step Functions e Local AWS SAM CLI.