

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á.

# Testar máquinas de estado com Step Functions Local (sem suporte)
<a name="sfn-local"></a>

**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.  
Como alternativa ao Step Functions Local, você pode usar a TestState API para testar a unidade da lógica da máquina de estado antes de implantá-la em sua AWS conta. Para obter mais informações, consulte [Teste de máquinas de estado com TestState API](https://docs.aws.amazon.com/step-functions/latest/dg/test-state-isolation.html).

Com o AWS Step Functions Local, uma versão 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 pacote JAR ou uma imagem Docker independente 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 testes e nunca para fazer o processamento de informações confidenciais.

**Topics**
+ [Configurar o Step Functions Local e o Docker](#sfn-local-docker)
+ [Configurar o Step Functions Local: versão em Java](#sfn-local-jar)
+ [Configurar as opções do Step Functions Local](#sfn-local-config-options)
+ [Executar o Step Functions Local](#sfn-local-computer)
+ [Tutorial: Testando usando Step Functions e AWS SAM CLI Local](sfn-local-lambda.md)
+ [Testar com integrações de serviços simuladas](sfn-local-test-sm-exec.md)

## Configurar o Step Functions Local (versão para download) no Docker
<a name="sfn-local-docker"></a>

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](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 saber mais, consulte os seguintes tópicos:
+ [Definindo opções de configuração para Step Functions Local](#sfn-local-config-options)
+ [Credenciais e configuração para o Docker](#docker-credentials)

## Configuração do Step Functions Local (versão para download) - Versão Java
<a name="sfn-local-jar"></a>

A versão 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, 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](https://docs.aws.amazon.com/cli/latest/userguide/).

**Como configurar e executar o Step Functions no computador**

1. Faça download do Step Functions usando os seguintes links.     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/step-functions/latest/dg/sfn-local.html)

1. Extraia o arquivo `.zip`.

1. 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
   ```

1. (Opcional) Visualize uma lista de comandos disponíveis.

   ```
   $ java -jar StepFunctionsLocal.jar -h
   ```

1. 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
   ```

1. 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 ARN do grupo de CloudWatch registros de registros 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 o ARN de execução for:  

```
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
<a name="sfn-local-config-options"></a>

Ao iniciar o AWS Step Functions Local usando o arquivo JAR, você pode definir 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
<a name="sfn-local-config-options-table"></a>

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](#docker-credentials) 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\_REGIÃO | 
| 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 | -dynamo, --dynamodb-endpoint DBEndpoint | 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
<a name="docker-credentials"></a>

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 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](https://docs.docker.com/desktop/mac/networking/#use-cases-and-workaround) e [Recursos de rede no Docker Desktop para Windows](https://docs.docker.com/desktop/windows/networking/), respectivamente. 

## Executando o Step Functions Local em seu computador
<a name="sfn-local-computer"></a>

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
<a name="sfn-local-heloworld"></a>

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. É 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"
   }
   ```

1. 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
<a name="with-lambda-local"></a>

É 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:
+ [Configurar AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-quick-start.html)
+ [Inicie a AWS SAM CLI local](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-local-start-lambda.html)

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 a execução do Step Functions Local com AWS Lambda, consulte[Tutorial: Testando fluxos de trabalho usando Step Functions e AWS SAM CLI Local](sfn-local-lambda.md).