

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemple : déploiement d'alias et de versions dans Step Functions
<a name="example-alias-version-deployment"></a>

L'exemple suivant de la technique de déploiement de Canary montre comment déployer une nouvelle version de State Machine avec le AWS Command Line Interface. Dans cet exemple, l'alias que vous créez achemine 20 % du trafic d'exécution vers la nouvelle version. Il achemine ensuite les 80 % restants vers la version précédente. Pour déployer une nouvelle [version](concepts-state-machine-version.md) de State Machine et transférer le trafic d'exécution à l'aide d'un [alias](concepts-state-machine-alias.md), procédez comme suit :

1. 

**Publiez une version à partir de la révision actuelle de la machine à états.**  
Utilisez la **publish-state-machine-version** commande du AWS CLI pour publier une version à partir de la révision actuelle d'une machine à états appelée `myStateMachine:`

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

   La réponse renvoie `stateMachineVersionArn` la version que vous avez publiée. Par exemple, `arn:aws:states:region:account-id:stateMachine:myStateMachine:1`.

1. 

**Créez un alias qui pointe vers la version de la machine à états.**  
Utilisez la **create-state-machine-alias** commande pour créer un alias nommé `PROD` qui pointe vers la version 1 de `myStateMachine` :

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

1. 

**Vérifiez que les exécutions lancées par l'alias utilisent la version publiée correcte.**  
Démarrez une nouvelle exécution de `myStateMachine` en fournissant l'ARN de l'alias **PROD** dans la **start-execution** commande :

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

   Si vous fournissez l'ARN de la machine à états dans la [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)demande, celle-ci utilise la version la plus récente [revision](concepts-cd-aliasing-versioning.md#statemachinerev) de la machine à états au lieu de la version spécifiée dans votre alias pour démarrer l'exécution.

1. 

**Mettez à jour la définition de la machine à états et publiez une nouvelle version.**  
Mettre à jour `myStateMachine` et publier sa nouvelle version. Pour cela, utilisez le `publish` paramètre optionnel de la **update-state-machine** commande :

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

   La réponse renvoie le `stateMachineVersionArn` pour la nouvelle version. Par exemple, `arn:aws:states:region:account-id:stateMachine:myStateMachine:2`.

1. 

**Mettez à jour l'alias pour qu'il pointe vers les deux versions et définissez la [configuration de routage](concepts-state-machine-alias.md#alias-routing-config) de l'alias.**  
Utilisez la **update-state-machine-alias** commande pour mettre à jour la configuration de routage de l'alias`PROD`. Configurez l'alias de manière à ce que 80 % du trafic d'exécution passe à la version 1 et les 20 % restants à la version 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. 

**Remplacez la version 1 par la version 2.**  
Après avoir vérifié que votre nouvelle version de machine d'état fonctionne correctement, vous pouvez déployer la nouvelle version de machine d'état. Pour ce faire, mettez à jour à nouveau l'alias pour affecter 100 % du trafic d'exécution à la nouvelle version.

   Utilisez la **update-state-machine-alias** commande pour définir la configuration de routage de l'alias `PROD` sur 100 % pour la version 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}]"
   ```

**Astuce**  
Pour annuler le déploiement de la version 2, modifiez la configuration de routage de l'alias afin de transférer 100 % du trafic vers la version nouvellement déployée.  

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

Vous pouvez utiliser des versions et des alias pour effectuer d'autres types de déploiements. Par exemple, vous pouvez effectuer un *déploiement progressif* d'une nouvelle version de votre machine d'état. Pour ce faire, augmentez progressivement le pourcentage pondéré dans la configuration de routage de l'alias qui pointe vers la nouvelle version.

Vous pouvez également utiliser des versions et des alias pour effectuer un déploiement *bleu/vert*. Pour ce faire, créez un alias nommé `green` qui exécute la version 1 actuelle de votre machine d'état. Créez ensuite un autre alias nommé `blue` qui exécute la nouvelle version, par exemple,`2`. Pour tester la nouvelle version, envoyez le trafic d'exécution à l'`blue`alias. Lorsque vous êtes certain que votre nouvelle version fonctionne correctement, mettez à jour l'`green`alias pour qu'il pointe vers votre nouvelle version.