如何处理 CI/CD 管道中的 CloudFormation 更新限制?

问题描述 投票:0回答:1

上下文:CloudFormation 无法处理某些更新,例如它无法重命名 Api Gateway 的路由 中的路径参数。这种更新需要我们部署一个中间步骤,通常是这样的:“删除旧路由,部署,添加带有新更改的路由,再次部署”。这只是一个例子,当你有跨堆栈依赖时也会出现类似的问题。具体来说,我并不是要求修复此错误。

我的问题是:这些场景在 CI/CD 中是如何处理的?手动执行很容易,但出于安全考虑,从开发人员的机器手动部署是一种反模式。

我可以在每个提交中设置自动部署,并将此类部署拆分为 2 个提交。然而,由于 QA 限制,大多数公司不会从主环境自动部署到所有环境。这里有哪些替代方法?这通常是如何处理的? CloudFormation 充满了此类问题,所以我想必须有某种最佳实践来解决它,而不是手动执行。

continuous-integration aws-cloudformation continuous-deployment
1个回答
0
投票

我原本想发表评论,但我没有足够的代表。所以答案是诚实的,这取决于情况。通常,对于我和我的团队来说,我们使用 Azure Dev Ops 设置云集成,将服务部署到 AWS lambda 函数。我们的部署管道是与实际环境分开的过程。在我的一个老团队中,我们会通过注释和取消注释变量来手动更改前端部署的环境变量,因为我们从来没有时间弄清楚如何动态处理该问题。在另一个团队中,我们使用布尔逻辑门对 .NET 后端服务执行了相同的操作。

对于我的一些个人项目,我目前正在处理将前端部署到我的暂存/开发环境和生产环境的问题,在将最新更改从主环境部署到环境中之前,我必须手动更改服务器 URI。我还没有时间找出一个好的解决方案(认为最好的方法是编写一些 shell 脚本,该脚本将根据我传递的标志动态地将服务器 uri 写入 .env 文件)。

一位前队友也告诉我,没有最佳实践之类的东西,只有在仔细权衡后最适合您的需求。

© www.soinside.com 2019 - 2024. All rights reserved.