

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

# Esempio: distribuzione di alias e versioni in Step Functions
<a name="example-alias-version-deployment"></a>

Il seguente esempio della tecnica di implementazione di Canary mostra come è possibile distribuire una nuova versione di una macchina a stati con. AWS Command Line Interface In questo esempio, l'alias creato indirizza il 20% del traffico di esecuzione alla nuova versione. Quindi indirizza il restante 80% della versione precedente. Per implementare una nuova [versione](concepts-state-machine-version.md) della macchina a stati e spostare il traffico di esecuzione con un [alias](concepts-state-machine-alias.md), completa i seguenti passaggi:

1. 

**Pubblica una versione dalla revisione corrente della macchina a stati.**  
Utilizzate il **publish-state-machine-version** comando in AWS CLI per pubblicare una versione della revisione corrente di una macchina a stati chiamata `myStateMachine:`

   ```
   aws stepfunctions publish-state-machine-version --state-machine-arn arn:aws:states:region:account-id:stateMachine:myStateMachine
   ```

   La risposta restituisce `stateMachineVersionArn` la versione che hai pubblicato. Ad esempio, `arn:aws:states:region:account-id:stateMachine:myStateMachine:1`.

1. 

**Crea un alias che punti alla versione della macchina a stati.**  
Utilizzate il **create-state-machine-alias** comando per creare un alias denominato `PROD` che punti alla versione 1 di: `myStateMachine`

   ```
   aws stepfunctions create-state-machine-alias --name PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:1\",\"weight\":100}]"
   ```

1. 

**Verifica che le esecuzioni avviate dall'alias utilizzino la versione pubblicata corretta.**  
Inizia una nuova esecuzione di `myStateMachine` fornendo l'ARN dell'alias **PROD** nel comando: **start-execution**

   ```
   aws stepfunctions start-execution 
     --state-machine-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD
     --input "{}"
   ```

   Se fornisci l'ARN della macchina a stati nella [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)richiesta, utilizza la macchina a stati più recente [revision](concepts-cd-aliasing-versioning.md#statemachinerev) anziché la versione specificata nell'alias per avviare l'esecuzione.

1. 

**Aggiorna la definizione della macchina a stati e pubblica una nuova versione.**  
Aggiorna `myStateMachine` e pubblica la nuova versione. Per fare ciò, usa il `publish` parametro opzionale del **update-state-machine** comando:

   ```
   aws stepfunctions update-state-machine
       --state-machine-arn arn:aws:states:region:account-id:stateMachine:myStateMachine
       --definition $UPDATED_STATE_MACHINE_DEFINITION
       --publish
   ```

   La risposta restituisce la `stateMachineVersionArn` per la nuova versione. Ad esempio, `arn:aws:states:region:account-id:stateMachine:myStateMachine:2`.

1. 

**[Aggiorna l'alias in modo che punti a entrambe le versioni e imposta la configurazione di routing dell'alias.](concepts-state-machine-alias.md#alias-routing-config)**  
Usa il **update-state-machine-alias** comando per aggiornare la configurazione di routing dell'alias. `PROD` Configura l'alias in modo che l'80 percento del traffico di esecuzione vada alla versione 1 e il restante 20 percento alla versione 2:

   ```
   aws stepfunctions update-state-machine-alias --state-machine-alias-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:1\",\"weight\":80}, {\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:2\",\"weight\":20}]"
   ```

1. 

**Sostituisci la versione 1 con la versione 2.**  
Dopo aver verificato che la nuova versione della macchina a stati funzioni correttamente, è possibile distribuire la nuova versione della macchina a stati. A tale scopo, aggiorna nuovamente l'alias per assegnare il 100% del traffico di esecuzione alla nuova versione.

   Utilizzate il **update-state-machine-alias** comando per impostare la configurazione di routing dell'alias `PROD` al 100% per la versione 2:

   ```
   aws stepfunctions update-state-machine-alias --state-machine-alias-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:2\",\"weight\":100}]"
   ```

**Suggerimento**  
Per ripristinare la distribuzione della versione 2, modifica la configurazione di routing dell'alias per spostare il 100% del traffico verso la versione appena distribuita.  

```
aws stepfunctions update-state-machine-alias 
  --state-machine-alias-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD 
  --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:1\",\"weight\":100}]"
```

È possibile utilizzare versioni e alias per eseguire altri tipi di distribuzioni. Ad esempio, è possibile eseguire una *distribuzione* continua di una nuova versione della macchina a stati. A tale scopo, aumentate gradualmente la percentuale ponderata nella configurazione di routing dell'alias che rimanda alla nuova versione.

*È inoltre possibile utilizzare versioni e alias per eseguire una distribuzione blu/verde.* A tale scopo, crea un alias denominato `green` che esegua la versione 1 corrente della tua macchina a stati. Quindi, create un altro alias denominato `blue` che esegua la nuova versione, ad esempio. `2` Per testare la nuova versione, invia il traffico di esecuzione all'`blue`alias. Quando sei sicuro che la nuova versione funzioni correttamente, aggiorna l'`green`alias in modo che punti alla nuova versione.