首页 文章

具有2个AWS账户的AWS CodePipeline最佳实践

提问于
浏览
1

目前,我的项目使用2个AWS账户 - 一个用于我们的客户可以依赖进行测试而另一个用于 生产环境 /现场 . 我正在尝试为新的 serverless 应用程序设置CodePipeline . 我想知道这个设置是否合适,是否有办法改进它 .

Staging AWS account: GitHub源 - > AWS CodeBuild(测试和构建分段环境) - >手动批准门 - >在分段中部署应用程序

然后,我将在批准 生产环境 部署之前验证暂存中的更改:

Production AWS account: GitHub源 - > AWS CodeBuild(在prod环境中测试和构建) - >手动审批门 - >在prod中部署应用程序

看起来测试和构建将是多余的,但似乎更容易设置它,因为我基本上可以使用相同的Cloudformation模板进行管道 . 此外,我不必担心跨帐户资源访问 .

每当我推动它,它基本上会触发这两个管道 . 冗余是一个可以轻松修复的缺陷吗?只是让暂存帐户具有手动批准以促销到prod帐户的管道并触发它更简单吗?

1 回答

  • 2

    单独的分期和 生产环境 帐户是个好主意 . 您是否考虑过使用单一管道(可能在第三个帐户中)?可以在CodePipeline中配置跨帐户操作 . 否则,您将很难在两个管道之间协调发布 .

    我认为跨帐户操作是此类设置的最佳实践 . 也就是说,一些可能的解决方法是:

    • 手动批准可能是协调管道之间释放的最简单方法 . 它很容易让人误以为是错误的推销 . 如果提交1和提交2在短时间内发生,则管道1可以观察到提交1并且管道2可以观察到提交2 .

    • 将登台管道发布到作为 生产环境 管道源的S3对象(即不要复制源,构建和测试阶段) . 这种方法的好处是 生产环境 管道只会释放已遍历登台管道的更改 .

相关问题