

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 例: Step Functions でのエイリアスとバージョンのデプロイ
<a name="example-alias-version-deployment"></a>

次の Canary デプロイ手法の例は、 AWS Command Line Interfaceを使用して新しいステートマシンバージョンをデプロイする方法を示しています。この例では、作成したエイリアスは実行トラフィックの 20 パーセントを新しいバージョンにルーティングします。次に、残りの 80% を以前のバージョンにルーティングします。新しいステートマシン[バージョン](concepts-state-machine-version.md)をデプロイし、[エイリアス](concepts-state-machine-alias.md)を使用して実行トラフィックをシフトするには、次の手順を実行します。

1. 

**現在のステートマシンリビジョンからバージョンを公開します。**  
 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`。

1. 

**ステートマシンバージョンを指すエイリアスを作成します。**  
**create-state-machine-alias** コマンドを使用して、`myStateMachine` のバージョン 1 を指す `PROD` というエイリアスを作成します。

   ```
   aws stepfunctions create-state-machine-alias --name PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:region:account-id:stateMachine:myStateMachine:1\",\"weight\":100}]"
   ```

1. 

**エイリアスによって開始された実行で、正しい公開バージョンが使用されていることを確認します。**  
**start-execution** コマンドにエイリアス **PROD** の ARN を指定して、`myStateMachine` の新しい実行を開始します。

   ```
   aws stepfunctions start-execution 
     --state-machine-arn arn:aws:states:region:account-id:stateMachineAlias:myStateMachine:PROD
     --input "{}"
   ```

   [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html) リクエストでステートマシン ARN を指定すると、実行を開始するためにエイリアスで指定されたバージョンではなく、ステートマシンの最新の [revision](concepts-cd-aliasing-versioning.md#statemachinerev) が使用されます。

1. 

**ステートマシン定義を更新し、新しいバージョンを公開します。**  
`myStateMachine` を更新して新しいバージョンを公開します。これを行うには、**update-state-machine** コマンドのオプションの `publish` パラメータを使用します。

   ```
   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`。

1. 

**両方のバージョンを指すようエイリアスを更新し、エイリアスの[ルーティング設定](concepts-state-machine-alias.md#alias-routing-config)を指定します。**  
**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. 

**バージョン 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` というエイリアスを作成します。次に、新しいバージョン(例: `2`)を実行する `blue` という別のエイリアスを作成します。新しいバージョンをテストするには、`blue` エイリアスに実行トラフィックを送信します。新しいバージョンが正しく動作することが確認できたら、新しいバージョンを指すよう `green` エイリアスを更新します。