更新 Canary Release - Amazon API Gateway

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

更新 Canary Release

部署 Canary Release 之後,建議您調整 Canary 流量百分比,或者啟用或停用階段快取來最佳化測試效能。更新執行內容時,您也可以修改 Canary Release 中所使用的階段變數。若要進行這類更新,請呼叫 canarySettings 上具有新值的 stage:update 操作。

您可以使用 API Gateway 主控台、AWS CLI update-stage 命令或 AWS 軟體開發套件來更新 Canary 版本。

使用 API Gateway 主控台更新 Canary Release

若要使用 API Gateway 主控台來更新階段上的現有 Canary 設定,請執行下列操作:

更新現有的 Canary 設定
  1. 登入 API Gateway 主控台並選擇現有的 REST API。

  2. 在主導覽窗格中,選擇階段,然後選擇現有的階段。

  3. 選擇 Canary 索引標籤,然後選擇編輯。您可能需要選擇向右箭頭按鈕才能顯示 Canary 索引標籤。

  4. 增加或減少 0.0 和 100.0 (含) 之間的百分比數字,以更新請求分佈

  5. 選取或清除階段快取核取方塊。

  6. 新增、移除或修改 Canary 階段變數

  7. 選擇 Save (儲存)。

使用 AWS CLI 更新 Canary Release

若要使用 AWS CLI 更新 Canary,請呼叫 update-stage 命令。

若要啟用或停用 Canary 的階段快取,請呼叫 update-stage 命令,如下所示:

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

若要調整 Canary 流量百分比,請呼叫 update-stage 來取代階段上的 /canarySettings/percentTraffic 值。

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

更新 Canary 階段變數,包含新增、取代或移除 Canary 階段變數:

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