gpt4 book ai didi

amazon-web-services - 在 API 网关部署上更新阶段变量时如何避免停机?

转载 作者:行者123 更新时间:2023-12-03 07:21:19 25 4
gpt4 key购买 nike

我目前在 AWS API 网关的阶段 DEV 上部署了一个 API example_api。

我想更新其阶段变量之一并确保部署更改。 API 由 CloudFormation 提供,阶段变量映射到模板参数。

我使用 boto3 和 CloudFormation 更新堆栈(使用 UsePreviousTemplate 标志)并提供新值。

然后,我使用 boto3 为 DEV 上的 example_api 调用 create_deployment(以更新 DEV 上已部署的 example_api)。

此时,我的 API 将在大约 15-20 秒内变得不可用。我不断收到 {"message":"Missing Authentication Token"} 回复。

我想我在这里做错了什么。我应该避免这样的停机时间并确保新的 API 尽快可用吗?

注意:我的 API 是通过 API 网关中的自定义域名访问的。基本路径映射到 DEV 阶段。

谢谢

最佳答案

问题是云形成模板已使用部署资源的 StageDescription 属性创建了阶段,并且我没有正确理解部署/阶段关系。

资源阶段 DEV 最初与 Deployment Named000 绑定(bind)。

我的第一个 update_stack 调用用于更新阶段变量,但也将阶段 DEV 重新绑定(bind)到初始部署 (Named000)。丢失此后应用的任何更改(任何新路线)。

通过创建部署资源并在其名称中附加时间戳,以确保每次使用 Troposphere 生成堆栈时都会创建新资源,我能够更新阶段变量并正确部署,无需停机。然后使用新的阶段变量更新堆栈将使阶段与最新部署保持绑定(bind),并避免引入停机时间。

关于amazon-web-services - 在 API 网关部署上更新阶段变量时如何避免停机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54403432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com