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.
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 de State Machine et transférer le trafic d'exécution à l'aide d'un alias, procédez comme suit :
-
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: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 -
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é
qui pointe vers la version 1 dePROD
:myStateMachine
aws stepfunctions create-state-machine-alias --name PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:
123456789012
:stateMachine:myStateMachine
:1
\",\"weight\":100}]" -
Vérifiez que les exécutions lancées par l'alias utilisent la version publiée correcte.
Démarrez une nouvelle exécution de
en fournissant l'ARN de l'aliasmyStateMachine
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 l'ARN de la machine à états dans la StartExecutiondemande, celle-ci utilise la version la plus récente revision de la machine à états au lieu de la version spécifiée dans votre alias pour démarrer l'exécution.
-
Mettez à jour la définition de la machine à états et publiez une nouvelle version.
Mettre à jour
et publier sa nouvelle version. Pour cela, utilisez lemyStateMachine
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 --publishLa réponse renvoie le
stateMachineVersionArn
pour la nouvelle version. Par exemple,arn:aws:states:us-east-1:
.123456789012
:stateMachine:myStateMachine
:2 -
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'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: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}]" -
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,
. Pour tester la nouvelle version, envoyez le trafic d'exécution à l'2
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.