首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodePipeline如何部署多个CFN堆栈

CodePipeline如何部署多个CFN堆栈
EN

Stack Overflow用户
提问于 2022-02-05 18:50:18
回答 1查看 246关注 0票数 1

我可以部署一个CFN堆栈作为管道的一部分,但是如何部署多个动态堆栈呢?

更好的选择;你会怎么做?forEach BuildStage.artifact调用CloudFormation.build

我正以一种非常传统的方式使用CodePipeline。目标是源代码管理我的CloudFormation模板,在模板更改时将它们推送到管道中,然后自动部署堆栈。

源阶段(CodeCommit提交我的CFN yaml模板)

构建阶段(CodeBuild从提交中找到新文件,并将它们推送到S3)

部署阶段(CloudFormation将我的模板部署为CFN堆栈)

几乎所有的事情都很好。我将我的模板更改提交到CodeCommit,构建阶段运行我的codeBuild网关管理员,它只收集已更改的文件的,并将它们上传到S3。到目前一切尚好。

挑战是,有时我有一个模板更改,有时我有多个(N)。在我的构建阶段,我可以检测到已更改的文件,并将它们放到S3上,没有问题。如果我为一个模板提交了一个更改,那么一切都很好。我可以在S3上创建一个带有模板位置的导出变量,将其传递到我的部署阶段,并让CloudFormation部署操作使用该文件作为模板源。但是如果我有两个模板,我该如何处理呢?

  • 我不能只在构建阶段创建无穷无尽的导出变量。
  • ,如果可以的话,AFAIK无法迭代部署阶段的每个条目。

我的想法是,我需要做以下工作之一:

在我当前构建规范中的

  1. (在我将文件上传到S3之后),使用AWS调用CFN堆栈构建。我可以将其作为循环的一部分添加,因此它会迭代要上载的每个文件。或
  2. 在我的构建阶段之后,使用Lambda执行与#1.循环每个文件相同的操作,然后使用CLI或SDK调用CFN堆栈生成.

这两种选择似乎完全违背了部署阶段的目的,而在我看来,部署阶段似乎很笨拙。

我还有其他选择吗?你怎么做?

EN

回答 1

Stack Overflow用户

发布于 2022-02-07 01:56:57

我只想回答我自己的问题,以防其他人想办法解决这个问题。

最后,我选择了选项1...just,直接在CodeBuild中进行CFN部署。我确实是在试图支持使用CodePipeline部署阶段的想法,但这是很好的。

如果其他人最终提出了更好的解决方案,我会全神贯注地倾听。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71001123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档