

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 更新 Canary Release
<a name="update-canary-deployment"></a>

 部署 Canary Release 之後，建議您調整 Canary 流量百分比，或者啟用或停用階段快取來最佳化測試效能。更新執行內容時，您也可以修改 Canary Release 中所使用的階段變數。若要進行這類更新，請呼叫 [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) 上具有新值的 [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) 操作。

您可以使用 API Gateway 主控台、 AWS CLI [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) 命令或 SDK 更新 Canary Release AWS 。

**Topics**
+ [使用 API Gateway 主控台更新 Canary Release](#update-canary-deployment-using-console)
+ [使用 更新 Canary 版本 AWS CLI](#update-canary-deployment-using-cli)

## 使用 API Gateway 主控台更新 Canary Release
<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.  選擇**儲存**。

## 使用 更新 Canary 版本 AWS CLI
<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 每個參數的修補程式操作。

如果 Canary 使用階段快取，以下 [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) 命令就會更新：

```
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"    
      }]'
```

您可以將操作結合為單一 `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"                                          
      }]'
```

