提升 Canary Release
當您提升 Canary 版本時,Canary 版本會取代目前的階段設定。提升 Canary Release 並不會停用階段上的 Canary。若要停用 Canary,您必須移除階段上的 Canary 設定。若要提升 Canary,請執行下列操作。
使用 API Gateway 主控台提升 Canary Release
若要使用 API Gateway 主控台來提升 Canary Release 部署,請執行下列操作:
提升 Canary 版本部署
-
登入 API Gateway 主控台,然後在主導覽窗格中選擇現有 API。
-
在主導覽窗格中,選擇階段,然後選擇現有的階段。
-
選擇 Canary 索引標籤。
-
選擇提升 Canary。
-
確認要進行的變更,然後選擇提升 Canary。
在提升之後,生產版本會參考相同的 API 版本 (deploymentId) 作為 Canary Release。您可以使用 AWS CLI 進行驗證。如需範例,請參閱 使用 AWS CLI 提升 Canary Release。
使用 AWS CLI 提升 Canary Release
若要使用 AWS CLI 命令將 Canary Release 提升為生產版本,請呼叫 update-stage
命令將 Canary 相關聯的 deploymentId
複製至與階段相關聯的 deploymentId
、將 Canary 流量百分比重設為零 (0.0
),以及將任何 Canary 繫結階段變數複製至對應的階段繫結階段變數。
假設我們有 Canary Release 部署,如與以下類似的階段所描述:
{ "_links": { ... }, "accessLogSettings": { ... }, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "canarySettings": { "deploymentId": "eh1sby", "useStageCache": false, "stageVariableOverrides": { "sv2": "val3", "sv1": "val2" }, "percentTraffic": 10.5 }, "createdDate": "2017-11-20T04:42:19Z", "deploymentId": "nfcn0x", "lastUpdatedDate": "2017-11-22T00:54:28Z", "methodSettings": { ... }, "stageName": "prod", "variables": { "sv1": "val1" } }
使用下列 update-stage 命令來提升 Canary:
aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name '{stage-name}' \ --patch-operations '[{ "op": "replace", "value": "0.0", "path": "/canarySettings/percentTraffic" }, { "op": "copy", "from": "/canarySettings/stageVariableOverrides", "path": "/variables" }, { "op": "copy", "from": "/canarySettings/deploymentId", "path": "/deploymentId" }]'
輸出將如下所示:
{ "_links": { ... }, "accessLogSettings": { ... }, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "canarySettings": { "deploymentId": "eh1sby", "useStageCache": false, "stageVariableOverrides": { "sv2": "val3", "sv1": "val2" }, "percentTraffic": 0 }, "createdDate": "2017-11-20T04:42:19Z", "deploymentId": "eh1sby", "lastUpdatedDate": "2017-11-22T05:29:47Z", "methodSettings": { ... }, "stageName": "prod", "variables": { "sv2": "val3", "sv1": "val2" } }
將 Canary 版本提升到該階段後,並不會停用 Canary,而該部署仍然是 Canary 版本部署。為了讓該部署成為一般生產版本部署,您必須停用 Canary 設定。如需有關如何停用 Canary Release 部署的詳細資訊,請參閱 關閉 Canary 版本。