更新 Canary 版本 - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新 Canary 版本

在部署了 Canary 版本之后,您可能需要调整 Canary 流量的百分比,或者启用或禁用阶段缓存以优化测试性能。在更新执行上下文时,您还可以修改在 Canary 版本中使用的阶段变量。要进行此类更新,请在 canarySettings 上使用新值调用 stage:update 操作。

您可以使用 API Gateway 控制台、Amazon CLI update-stage 命令或Amazon开发工具包更新 Canary 版本。

使用 API Gateway 控制台更新 Canary 版本

要使用 API Gateway 控制台更新阶段上的现有 Canary 设置,请执行以下操作:

更新现有的金丝雀设置
  1. 登录 API Gateway 控制台并选择现有的 REST API。

  2. 在主导航窗格中,选择阶段,然后选择一个现有阶段。

  3. 选择金丝雀选项卡,然后选择编辑。您可能需要选择右箭头按钮以显示金丝雀选项卡。

  4. 通过在 0.0 到 100.0 之间(含)增加或减少百分比数字,更新请求分布

  5. 选中或清除阶段缓存复选框。

  6. 添加、移除或修改金丝雀阶段变量

  7. 选择 Save(保存)。

使用 Amazon CLI 更新 Canary 版本

要使用 Amazon 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" }]'