我正在寻找 AWS 的正确方向。之前我曾使用过 Heroku,它允许用户为您在 Github 中创建的每个 pull 请求创建审核应用程序。这是一个很棒的功能,因为它允许您创建单独的环境(数据库、计算实例/Lambda、URL)来预览更改。您可以要求用户通过唯一的 URL(例如 https://my-test-app-123.domain.com
我正在寻找使用 AWS 的类似解决方案。我想知道是否已经有这样的服务我不知道。我查看了 Elastic Beanstalk,但不确定如何配置它以了解我在 Github 中发出的所有 pull 请求。
理想的设置是:
三种环境:审核应用(基于分支)、QA(基于 master
分支)、生产(基于 QA 手动升级)。
- 对于每个 pull 请求,创建以下唯一实例:S3、DynamoDB、Lambda、API Gateway(用于唯一 URL)。针对此 PR 环境运行测试。除了指向新创建的支持服务(例如 S3、DynamoDB)的环境变量之外,还应从 QA 复制用于审核应用程序的环境变量。
- 每当有对 master
分支的提交时,让 QA 环境更新自身以匹配 master 分支中的任何内容。
- 可以手动触发从 QA 升级到生产。
我应该关注哪些服务? CloudFormation 听起来是正确的选择,但它非常复杂,我不知道从哪里开始。
最佳答案
我不会满足您的所有要求,但如果您询问如何开始,我认为以下内容可能值得考虑。
拥有一个带有 source action 的 CodePipeline设置为 GitHub。
CodePipeline 可以 deploy resources通过CloudFormation。这将产生您需要的一组独特的资源。它们的数量有限制,因此不能为每次提交创建数百个。
CodePipepline 还支持 Lambda 调用操作和手动批准,例如部署到生产环境。对于大多数复杂的情况,您可以使用为 CodePipeline 量身定制的工作人员来设计自己的自定义操作。
CloudFormation 并不完美,值得花时间学习。
希望这可以帮助您入门。如果您想为每个 PR/提交创建不同的资源集,那么我建议您首先编写一个 CloudFormation 模板来部署您需要的一组资源。然后对其进行参数化,以便您可以从同一模板制作多组资源。参数化后,可以考虑如何将其插入 CodePipeline 以根据 GitHub 更改创建资源。
关于git - 检查 AWS 中的应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61476265/