

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 macchine a stati con Step Functions Local (non supportato)
<a name="sfn-local"></a>

**Step Functions Local non è supportato**  
Step Functions Local **non** fornisce parità di funzionalità e **non** è supportato.  
Potresti prendere in considerazione soluzioni di terze parti che emulano Step Functions a scopo di test.  
In alternativa a Step Functions Local, puoi utilizzare l' TestState API per testare unitariamente la logica della tua macchina a stati prima di distribuirla AWS sul tuo account. Per ulteriori informazioni, consulta [Testare le macchine a stati con l' TestState API](https://docs.aws.amazon.com/step-functions/latest/dg/test-state-isolation.html).

Con AWS Step Functions Local, una versione scaricabile di Step Functions, puoi testare applicazioni con Step Functions in esecuzione nel tuo ambiente di sviluppo.



Quando si esegue Step Functions Local, è possibile utilizzare uno dei seguenti modi per richiamare le integrazioni dei servizi:
+ Configurazione degli endpoint locali per AWS Lambda e altri servizi.
+ Effettuare chiamate direttamente a un AWS servizio da Step Functions Local.
+ Prendere in giro la risposta delle integrazioni di servizi.

AWS Step Functions Local è disponibile come pacchetto JAR o immagine Docker autonoma che può essere eseguita su Microsoft Windows, Linux, macOS e altre piattaforme che supportano Java o Docker.

**avvertimento**  
È necessario utilizzare Step Functions Local solo per i test e mai per elaborare informazioni sensibili.

**Topics**
+ [Configurazione di Step Functions Local e Docker](#sfn-local-docker)
+ [Configurazione locale di Step Functions - Versione Java](#sfn-local-jar)
+ [Configurazione delle opzioni locali di Step Functions](#sfn-local-config-options)
+ [Running Step Functions Local](#sfn-local-computer)
+ [Tutorial: Test con Step Functions e AWS SAM CLI Local](sfn-local-lambda.md)
+ [Test con integrazioni di servizi simulate](sfn-local-test-sm-exec.md)

## Configurazione locale di Step Functions (versione scaricabile) in Docker
<a name="sfn-local-docker"></a>

L'immagine Docker locale di Step Functions consente di iniziare rapidamente con Step Functions Local utilizzando un'immagine Docker con tutte le dipendenze necessarie. L'immagine Docker consente di includere Step Functions Local nelle build containerizzate e come parte dei test di integrazione continua.

Per ottenere l'immagine Docker per Step Functions Local, vedi [https://hub.docker.com/r/amazon/ aws-stepfunctions-local](https://hub.docker.com/r/amazon/aws-stepfunctions-local) o inserisci il seguente comando Docker. `pull`

```
docker pull amazon/aws-stepfunctions-local
```

Per avviare la versione scaricabile di Step Functions on Docker, esegui il seguente comando Docker `run`

```
docker run -p 8083:8083 amazon/aws-stepfunctions-local
```

Per interagire con AWS Lambda o con altri servizi supportati, devi prima configurare le tue credenziali e altre opzioni di configurazione. Per ulteriori informazioni, consulta i seguenti argomenti:
+ [Impostazione delle opzioni di configurazione per Step Functions Local](#sfn-local-config-options)
+ [Credenziali e configurazione per Docker](#docker-credentials)

## Configurazione locale di Step Functions (versione scaricabile) - Versione Java
<a name="sfn-local-jar"></a>

La versione scaricabile di AWS Step Functions viene fornita come file JAR eseguibile e come immagine Docker. L'applicazione Java è eseguibile su Windows, Linux, macOS e altre piattaforme compatibili con Java. Oltre a Java, è necessario installare il AWS Command Line Interface file ().AWS CLI Per informazioni sull'installazione e la configurazione di AWS CLI, consultate la [Guida per l'AWS Command Line Interface utente](https://docs.aws.amazon.com/cli/latest/userguide/).

**Per configurare ed eseguire Step Functions sul tuo computer**

1. Scaricate Step Functions utilizzando i seguenti link.     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/step-functions/latest/dg/sfn-local.html)

1. Estrarre il file `.zip`.

1. Test del download e visualizzazione delle informazioni sulla versione.

   ```
   $ java -jar StepFunctionsLocal.jar -v
   Step Function Local
   Version: 2.0.0
   Build: 2024-05-18
   ```

1. (Facoltativo) Visualizzare un elenco dei comandi disponibili.

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

1. Per avviare Step Functions sul tuo computer, apri un prompt dei comandi, vai alla directory in cui hai estratto `StepFunctionsLocal.jar` e immetti il comando seguente.

   ```
   java -jar StepFunctionsLocal.jar
   ```

1. Per accedere a Step Functions in esecuzione localmente, utilizzare il `--endpoint-url` parametro. Ad esempio, utilizzando AWS CLI, è possibile specificare i comandi Step Functions come segue:

   ```
   aws stepfunctions --endpoint-url http://localhost:8083 {{command}}
   ```

**Nota**  
Per impostazione predefinita, Step Functions Local utilizza un account di test e credenziali locali e la AWS regione è impostata su Stati Uniti orientali (Virginia settentrionale). Per utilizzare Step Functions Local con AWS Lambda o altri servizi supportati, è necessario configurare le credenziali e la regione.  
Se si utilizzano flussi di lavoro Express con Step Functions Local, la cronologia di esecuzione verrà archiviata in un file di registro. Non viene registrata in Logs. CloudWatch Il percorso del file di registro sarà basato sull'ARN del gruppo di log CloudWatch Logs fornito quando si crea la macchina a stati locale. Il file di registro verrà memorizzato in `/aws/states/log-group-name/{{${execution_arn}}}.log` relazione alla posizione in cui è in esecuzione Step Functions Local. Ad esempio, se l'ARN di esecuzione è:  

```
arn:aws:states:{{region}}:{{account-id}}:express:test:example-ExpressLogGroup-wJalrXUtnFEMI
```
il file di registro sarà:  

```
aws/states/log-group-name/arn:aws:states:{{region}}:{{account-id}}:express:test:example-ExpressLogGroup-wJalrXUtnFEMI.log
```

## Impostazione delle opzioni di configurazione per Step Functions Local
<a name="sfn-local-config-options"></a>

Quando avviate AWS Step Functions Local utilizzando il file JAR, potete impostare le opzioni di configurazione utilizzando AWS Command Line Interface (AWS CLI) o includendole nell'ambiente di sistema. Per Docker, è necessario specificare queste opzioni in un file a cui si fa riferimento all'avvio di Step Functions Local.

### Opzioni di configurazione
<a name="sfn-local-config-options-table"></a>

[Quando configuri il contenitore Step Functions Local per utilizzare un endpoint di override come Lambda Endpoint e Batch Endpoint ed effettui chiamate a tale endpoint, Step Functions Local non utilizza le credenziali specificate.](#docker-credentials) L'impostazione di queste sostituzioni degli endpoint è facoltativa.


| Opzione | Riga di comando | Ambiente | 
| --- | --- | --- | 
| Account | -account, --aws-account | AWS\_ACCOUNT\_ID | 
| Region | -regione, --aws-region | AWS\_DEFAULT\_REGIONE | 
| Wait Time Scale | -waitTimeScale, --wait-time-scale | WAIT\_TIME\_SCALE | 
| Endpoint Lambda | -LambdaEndpoint, --lambda-endpoint | LAMBDA\_ENDPOINT | 
| Endpoint Batch | -batchEndpoint, --batch-endpoint | BATCH\_ENDPOINT | 
| Endpoint DynamoDB | -dinamoDBEndpoint, --dynamodb-endpoint | DYNAMODB\_ENDPOINT | 
| Endpoint ECS  | -ecsEndpoint, --ecs-endpoint | ECS\_ENDPOINT | 
| Endpoint Glue | -glueEndpoint, --glue-endpoint | GLUE\_ENDPOINT | 
| SageMaker Punto finale | -sageMakerEndpoint, --sagemaker-endpoint | SAGE\_MAKER\_ENDPOINT | 
| Endpoint SQS | -sqsEndpoint, --sqs-endpoint | SQS\_ENDPOINT | 
| Endpoint SNS | -snsEndpoint, --sns-endpoint | SNS\_ENDPOINT | 
| Endpoint Step Functions | -stepFunctionsEndpoint, --step-functions-endpoint | STEP\_FUNCTIONS\_ENDPOINT | 

### Credenziali e configurazione per Docker
<a name="docker-credentials"></a>

Per configurare Step Functions Local for Docker, crea il seguente file:`aws-stepfunctions-local-credentials.txt`.

Questo file contiene le tue credenziali e altre opzioni di configurazione. Quanto segue può essere usato come modello durante la creazione del `aws-stepfunctions-local-credentials.txt` file.

```
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}}
```

Dopo aver configurato le credenziali e le opzioni di configurazione in`aws-stepfunctions-local-credentials.txt`, avvia Step Functions con il seguente comando.

```
docker run -p 8083:8083 --env-file aws-stepfunctions-local-credentials.txt amazon/aws-stepfunctions-local
```

**Nota**  
 Si consiglia di utilizzare il nome DNS speciale`host.docker.internal`, che si risolve nell'indirizzo IP interno utilizzato dall'host, ad esempio. `http://host.docker.internal:8000` Per ulteriori informazioni, consulta la documentazione Docker per Mac e Windows rispettivamente alle [funzionalità di rete in Docker Desktop per Mac e alle funzionalità](https://docs.docker.com/desktop/mac/networking/#use-cases-and-workaround) di [rete in Docker](https://docs.docker.com/desktop/windows/networking/) Desktop per Windows. 

## Esecuzione di Step Functions Local sul computer
<a name="sfn-local-computer"></a>

Usa la versione locale di Step Functions per configurare, sviluppare e testare macchine a stati sul tuo computer. 

### Esegui una macchina a HelloWorld stati localmente
<a name="sfn-local-heloworld"></a>

Dopo aver eseguito Step Functions localmente con AWS Command Line Interface (AWS CLI), è possibile avviare l'esecuzione di una macchina a stati.

1. Crea una macchina a stati da AWS CLI escludendo la definizione della macchina a stati.

   ```
   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**  
Non `role-arn` viene utilizzato per Step Functions Local, ma è necessario includerlo con la sintassi corretta. È possibile utilizzare l'Amazon Resource Name (ARN) dall'esempio precedente. 

   Se la macchina a stati è stata creata correttamente, Step Functions risponde con la data di creazione e l'ARN della macchina a stati.

   ```
   {
       "creationDate": 1548454198.202, 
       "stateMachineArn": "arn:aws:states:{{region}}:{{account-id}}:stateMachine:HelloWorld"
   }
   ```

1. Avvia un'esecuzione utilizzando l'ARN della macchina a stati creata.

   ```
   aws stepfunctions --endpoint-url http://localhost:8083 start-execution --state-machine-arn arn:aws:states:{{region}}:{{account-id}}:stateMachine:HelloWorld
   ```

### Step Functions Local con AWS SAM CLI Local
<a name="with-lambda-local"></a>

È possibile utilizzare la versione locale di Step Functions con una versione locale di AWS Lambda. Per la configurazione, è necessario installare e configurare AWS SAM.

Per informazioni sulla configurazione e l'esecuzione AWS SAM, consulta quanto segue:
+ [Configurare AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-quick-start.html)
+ [Avvia AWS SAM CLI Local](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-local-start-lambda.html)

Quando Lambda è in esecuzione sul tuo sistema locale, puoi avviare Step Functions Local. Dalla directory in cui hai estratto i file JAR locali di Step Functions, avvia Step Functions Local e usa il `--lambda-endpoint` parametro per configurare l'endpoint Lambda locale.

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

Per ulteriori informazioni sull'esecuzione di Step Functions Local con AWS Lambda, vedere[Tutorial: test dei flussi di lavoro utilizzando Step Functions e AWS SAM CLI Local](sfn-local-lambda.md).