将现有 CodePipeline/CodeBuild 个项目导出到 Cloudformation

Export existing CodePipeline/CodeBuild projects to Cloudformation

有没有办法将现有的 CodePipeline/CodeBuild 项目导出到 Cloudformation?

我正在将我们现有的 CI/CD 基础设施转换为代码,以便在其他 AWS 区域轻松复制它们。

目前,我们已经通过浏览器中的 AWS 控制台完成了所有 CodePipeline/CodeBuild 项目,显然,这是乏味且容易出错的。

我通常会建议 CloudFormer 从现有资源生成 CloudFormation 模板,但似乎不支持 CodePipeline/CodeBuild。

您的下一个最佳选择是从现有模板开始,然后根据您的需要修改它们。

这里有一些例子:

  1. https://github.com/awslabs/codepipeline-nested-cfn
  2. https://github.com/stelligent/dromedary/blob/master/pipeline/cfn/codepipeline-cfn.json

如果您已经创建了一些代码管道,请使用 cli 将它们提取为 cloudformation。

命令大致是这样

aws codepipeline get-pipeline --name

它将为您取回用于 cloudformation 的代码管道资源。您将能够看到您需要在其他资源(如代码构建项目和 s3 存储桶或代码提交存储库)中输入的位置。

请注意,您需要完成模板以确保 cloudformation 将其视为有效。来自 cli 的资源行需要以大写字母开头,因此更改它可能很乏味。

另一件需要知道的事情是需要一个管道,我认为你可以在你的模板中拥有两个角色,它有自己的桶。所有这些都可以放在一个模板中,使可重现的管道成为可能。 祝你好运!

并为代码构建项目尝试这个:

aws codebuild batch-get-projects --name --output json

然后是 CodeBuild 模板。 提示:

aws help

aws codebuild help

会很好地帮助你。