查看 AWS 中的应用程序设置

Review application setup in AWS

我正在寻找 AWS 正确方向的指示。之前我曾与 Heroku 合作过,它允许用户为您在 Github 中创建的每个拉取请求创建审查应用程序。这是一个很棒的功能,因为它允许您创建单独的环境(数据库、计算实例/Lambda、URL)来预览更改。您可以要求用户通过独特的 URL(例如 https://my-test-app-123.domain.com

来测试他们请求的功能

我正在寻找使用 AWS 的类似解决方案。我想知道是否已经有我不知道的此类服务。我查看了 Elastic Beanstalk,但我不确定如何配置它以了解我在 Github.

中提出的所有拉取请求

理想的设置是:

三个环境:Review apps(基于分支)、QA(基于master分支)、Production(基于从QA手动提升)。
- 对于每个拉取请求,创建以下的唯一实例:S3、DynamoDB、Lambda、API 网关(对于唯一 URL)。 运行 针对此 PR 环境进行测试。除了指向新创建的支持服务(如 S3、DynamoDB)的环境变量外,应从 QA 复制用于审核应用程序的环境变量。
- 每当提交到 master 分支时,让 QA 环境自行更新以匹配主分支中的任何内容。
- 有可能手动触发从 QA 到 Production 的升级。

我应该查看哪些服务? CloudFormation 听起来不错,但它非常复杂,我不知道从哪里开始。

我不会回答你所有的要求,但如果你问起一个开始,我认为以下可能值得考虑。

  1. 有一个 CodePipeline source action 设置为 GitHub。

  2. CodePipeline 可以 deploy resources 通过 CloudFormation。这将产生您需要的一组独特的资源。它们的数量是有限制的,所以不能为它们每次提交都创建 hundrets。

  3. CodePipeline 还支持 Lambda 调用操作和手动批准,例如部署到生产环境。对于大多数复杂情况,您可以使用为 CodePipeline 量身定制的工作人员设计自己的自定义操作。

CloudFormation 并不完美,值得花时间学习。

希望这可以帮助您入门。如果您想为每个 PR/commit 创建不同的资源集,那么我建议您先编写一个 CloudFormation 模板来部署您需要的一组资源。然后对其进行参数化,以便您可以从同一模板制作多组资源。参数化后,可以考虑如何将其插入 CodePipeline 以根据您的 GitHub 更改创建资源。