git - 检查 AWS 中的应用程序设置

标签 git amazon-web-services aws-cloudformation pull-request

我正在寻找 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 听起来是正确的选择,但它非常复杂,我不知道从哪里开始。

最佳答案

我不会满足您的所有要求,但如果您询问如何开始,我认为以下内容可能值得考虑。

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

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

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

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

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

关于git - 检查 AWS 中的应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61476265/

相关文章:

amazon-web-services - 在 CloudFormation 用户数据中使用 AWS Parameter Store SecureStrings

amazon-dynamodb - cloudformation中的字符串、列表和字符串列表有什么区别?

git - Bitbucket 不显示所有分支

git - git config别名中的感叹号是什么意思?

ruby-on-rails - Git push Heroku master 需要永远

java - 如何强制 AmazonSQSBufferedAsyncClient 刷新消息?

git - 将 Flask 应用程序部署到 AWS beanstalk 时出现错误 [Errno 2]

amazon-web-services - 对数据库使用RDS还是容器(ECS)?的优点和缺点

amazon-web-services - 将 Docker 镜像部署到 AWS elastic beanstalk

aws-cloudformation - 云信息+OpsWorks