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