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
Il seguente esempio della tecnica di implementazione di Canary mostra come implementare 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 verso la nuova versione. Quindi indirizza il restante 80% della versione precedente. Per implementare una nuova versione della macchina a stati e spostare il traffico di esecuzione con un alias, completa i seguenti passaggi:
-
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 denominata
myStateMachine
:aws stepfunctions publish-state-machine-version --state-machine-arn arn:aws:states:us-east-1:
123456789012
:stateMachine:myStateMachine
La risposta restituisce
stateMachineVersionArn
la versione che hai pubblicato. Ad esempioarn:aws:states:us-east-1:
.123456789012
:stateMachine:myStateMachine
:1 -
Crea un alias che punti alla versione della macchina a stati.
Utilizzate il create-state-machine-alias comando per creare un alias denominato
che punti alla versione 1 di:PROD
myStateMachine
aws stepfunctions create-state-machine-alias --name PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:
123456789012
:stateMachine:myStateMachine
:1
\",\"weight\":100}]" -
Verifica che le esecuzioni avviate dall'alias utilizzino la versione pubblicata corretta.
Inizia una nuova esecuzione di
fornendo l'ARNaliasmyStateMachine
PROD
nel comando: start-executionaws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachineAlias:
myStateMachine
:PROD --input "{}"Se si fornisce la macchina ARN a stati nella StartExecutionrichiesta, questa utilizza la macchina a stati più recente revision anziché la versione specificata nell'alias per avviare l'esecuzione.
-
Aggiorna la definizione della macchina a stati e pubblica una nuova versione.
Aggiorna
e pubblica la nuova versione. Per fare ciò, usa ilmyStateMachine
publish
parametro opzionale del update-state-machine comando:aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:
myStateMachine
--definition $UPDATED_STATE_MACHINE_DEFINITION --publishLa risposta restituisce la
stateMachineVersionArn
per la nuova versione. Ad esempioarn:aws:states:us-east-1:
.123456789012
:stateMachine:myStateMachine
:2 -
Aggiorna l'alias in modo che punti a entrambe le versioni e imposta la configurazione di routing dell'alias.
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: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}]" -
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:us-east-1:123456789012:stateMachineAlias:myStateMachine:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:123456789012: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:us-east-1:123456789012:stateMachineAlias:
myStateMachine
:PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:123456789012: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.
Per testare la nuova versione, invia il traffico di esecuzione all'2
blue
alias. Quando sei sicuro che la nuova versione funzioni correttamente, aggiorna l'green
alias in modo che punti alla nuova versione.