翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例: Step Functions でのエイリアスとバージョンのデプロイ
次の Canary デプロイ手法の例は、 AWS Command Line Interfaceを使用して新しいステートマシンバージョンをデプロイする方法を示しています。この例では、作成したエイリアスは実行トラフィックの 20 パーセントを新しいバージョンにルーティングします。次に、残りの 80% を以前のバージョンにルーティングします。新しいステートマシンバージョンをデプロイし、エイリアスを使用して実行トラフィックをシフトするには、次の手順を実行します。
-
現在のステートマシンリビジョンからバージョンを公開します。
AWS CLI で publish-state-machine-version コマンドを使用して、
というステートマシンの現在のリビジョンからバージョンを公開します。myStateMachine:aws stepfunctions publish-state-machine-version --state-machine-arn arn:aws:states:region:account-id:stateMachine:myStateMachineレスポンスでは、公開したバージョンの
stateMachineVersionArnが返されます。例えば、arn:aws:states:。region:account-id:stateMachine:myStateMachine:1 -
ステートマシンバージョンを指すエイリアスを作成します。
create-state-machine-alias コマンドを使用して、
のバージョン 1 を指すmyStateMachineというエイリアスを作成します。PRODaws stepfunctions create-state-machine-alias --name PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:1\",\"weight\":100}]" -
エイリアスによって開始された実行で、正しい公開バージョンが使用されていることを確認します。
start-execution コマンドにエイリアス
PRODの ARN を指定して、の新しい実行を開始します。myStateMachineaws stepfunctions start-execution --state-machine-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD --input "{}"StartExecution リクエストでステートマシン ARN を指定すると、実行を開始するためにエイリアスで指定されたバージョンではなく、ステートマシンの最新の revision が使用されます。
-
ステートマシン定義を更新し、新しいバージョンを公開します。
を更新して新しいバージョンを公開します。これを行うには、update-state-machine コマンドのオプションのmyStateMachinepublishパラメータを使用します。aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:region:account-id:stateMachine:myStateMachine--definition $UPDATED_STATE_MACHINE_DEFINITION --publishレスポンスでは、新しいバージョンの
stateMachineVersionArnが返されます。例えば、arn:aws:states:。region:account-id:stateMachine:myStateMachine:2 -
両方のバージョンを指すようエイリアスを更新し、エイリアスのルーティング設定を指定します。
update-state-machine-alias コマンドを使用して、エイリアス
PRODのルーティング設定を更新します。実行トラフィックの 80% がバージョン 1 に送られ、残りの 20% がバージョン 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 をバージョン 2 に置き換えます。
新しいステートマシンバージョンが正しく動作することを確認したら、新しいステートマシンバージョンをデプロイできます。そのためには、エイリアスを再度更新して、実行トラフィックの 100% を新しいバージョンに割り当てます。
update-state-machine-alias コマンドを使用して、バージョン 2 のエイリアス
PRODのルーティング設定を 100% に設定します。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}]"
ヒント
バージョン 2 のデプロイをロールバックするには、エイリアスのルーティング設定を編集して、新しくデプロイされたバージョンにトラフィックの 100% を移行します。
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}]"
バージョンとエイリアスを使用すると、他のタイプのデプロイを実行できます。例えば、ステートマシンの新しいバージョンのローリングデプロイを実行できます。そのためには、新しいバージョンを指すエイリアスのルーティング設定の加重割合を徐々に増やします。
バージョンとエイリアスを使ってブルー/グリーンデプロイを行うこともできます。そのためには、ステートマシンの現在のバージョン 1 を実行する green というエイリアスを作成します。次に、新しいバージョン(例: )を実行する 2blue という別のエイリアスを作成します。新しいバージョンをテストするには、blue エイリアスに実行トラフィックを送信します。新しいバージョンが正しく動作することが確認できたら、新しいバージョンを指すよう green エイリアスを更新します。