Esempio: distribuzione di alias e versioni in Step Functions - AWS Step Functions

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:

  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 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 esempio arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1.

  2. 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:us-east-1:123456789012:stateMachine:myStateMachine:1\",\"weight\":100}]"
  3. Verifica che le esecuzioni avviate dall'alias utilizzino la versione pubblicata corretta.

    Inizia una nuova esecuzione di myStateMachine fornendo l'ARNalias PROD nel comando: start-execution

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

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

    La risposta restituisce la stateMachineVersionArn per la nuova versione. Ad esempio arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:2.

  5. 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}]"
  6. 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. 2 Per testare la nuova versione, invia il traffico di esecuzione all'bluealias. Quando sei sicuro che la nuova versione funzioni correttamente, aggiorna l'greenalias in modo che punti alla nuova versione.