

# Canary リリースの更新
<a name="update-canary-deployment"></a>

 Canary リリースがデプロイされた後、テストパフォーマンスを最適化するため、Canary トラフィックの割合を調整したり、ステージキャッシュの使用を有効または無効にしたりするかもしれません。また、実行コンテキストが更新されたとき、Canary リリースで使用されているステージ変数を変更することもできます。このような更新を行うには、[https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) オペレーションを呼び出すとき [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) に新しい値を入れます。

Canary リリースは、API Gateway コンソール、AWS CLI [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) コマンド、または AWS SDK を使用して更新できます。

**Topics**
+ [API Gateway コンソールを使用して Canary リリースを更新する](#update-canary-deployment-using-console)
+ [AWS CLI を使用して Canary リリースを更新する](#update-canary-deployment-using-cli)

## API Gateway コンソールを使用して Canary リリースを更新する
<a name="update-canary-deployment-using-console"></a>

API Gateway コンソールを使用してステージで既存の Canary 設定を更新するには、次の操作を行います。

**既存の canary 設定を更新するには**

1.  API Gateway コンソールにサインインし、既存の REST API を選択します。

1.  メインナビゲーションペインで、**[ステージ]** を選択してから、既存のステージを選択します。

1.  **[canary]** タブを選択してから、**[編集]** をクリックします。**[Canary]** タブを表示するには、右矢印ボタンを選択する必要がある場合があります。

1.  0.0～100.0 の間でパーセント数を調整して、**[リクエストの割合 (%)]** を更新します。

1.  **[ステージキャッシュ]** チェックボックスを選択または選択解除します。

1.  **Canary ステージ変数**を追加、削除、または変更します。

1.  **[保存]** を選択します。

## AWS CLI を使用して Canary リリースを更新する
<a name="update-canary-deployment-using-cli"></a>

AWS CLI を使用して Canary を更新するには、[https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) コマンドを使用し、Canary の各パラメータのパッチオペレーションを変更します。

次の [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) コマンドは、Canary がステージキャッシュを使用するかどうかを更新します。

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/useStageCache,value=true
```

次の [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) コマンドは、Canary トラフィックの割合を更新します。

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/percentTraffic,value=25.0
```

次の [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) は、ステージ変数を更新します。この例では、`newVar` という名前の新しいステージ変数を作成し、`var2` ステージ変数を上書きして、`var1` ステージ変数を削除する方法を示します。

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}'  \
    --patch-operations '[{                                      
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                      
      }, { 
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/var2",   
        "value": "val4"                                        
      }, {                                                      
        "op": "remove",                                         
        "path": "/canarySettings/stageVariableOverrides/var1"    
      }]'
```

上記のすべてを更新するには、オペレーションを 1 つの `patch-operations` 値にまとめます。

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations '[{                                       
        "op": "replace",                                         
        "path": "/canarySettings/percentTraffic",                        
        "value": "20.0"                                          
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/useStageCache",                        
        "value": "true"                                          
    }, {                                                         
        "op": "remove",                                          
        "path": "/canarySettings/stageVariableOverrides/var1"    
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                        
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/val2",   
        "value": "val4"                                          
      }]'
```

