Exemple : déploiement d'alias et de versions dans Step Functions - AWS Step Functions

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

L'exemple suivant de la technique de déploiement 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 de State Machine et transférer le trafic d'exécution à l'aide d'un alias, 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 dans le AWS CLI pour publier une version à partir de la révision en cours d'une machine à états appelée myStateMachine:

    aws stepfunctions publish-state-machine-version --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine

    La réponse renvoie stateMachineVersionArn la version que vous avez publiée. Par exemple, arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1.

  2. 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:us-east-1:123456789012:stateMachine:myStateMachine:1\",\"weight\":100}]"
  3. Vérifiez que les exécutions lancées par l'alias utilisent la version publiée correcte.

    Lancez une nouvelle exécution de en myStateMachine fournissant ARN l'alias PROD dans la start-execution commande :

    aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachineAlias:myStateMachine:PROD --input "{}"

    Si vous fournissez la machine d'état ARN dans la StartExecutiondemande, elle utilise la version la plus récente revision de la machine d'état au lieu de la version spécifiée dans votre alias pour démarrer l'exécution.

  4. 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:us-east-1:123456789012:stateMachine:myStateMachine --definition $UPDATED_STATE_MACHINE_DEFINITION --publish

    La réponse renvoie le stateMachineVersionArn pour la nouvelle version. Par exemple, arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:2.

  5. Mettez à jour l'alias pour qu'il pointe vers les deux versions et définissez la configuration de routage de l'alias.

    Utilisez la update-state-machine-alias commande pour mettre à jour la configuration de routage de l'aliasPROD. Configurez l'alias de telle sorte 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:us-east-1:123456789012:stateMachineAlias:myStateMachine:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1\",\"weight\":80}, {\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:2\",\"weight\":20}]"
  6. 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:us-east-1:123456789012:stateMachineAlias:myStateMachine:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:123456789012: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:us-east-1:123456789012:stateMachineAlias:myStateMachine:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:123456789012: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'bluealias. Lorsque vous êtes certain que votre nouvelle version fonctionne correctement, mettez à jour l'greenalias pour qu'il pointe vers votre nouvelle version.