使用同步的CodePipeline分离基础架构和代码

时间:2019-04-29 07:51:21

标签: amazon-web-services amazon-cloudformation aws-codepipeline

我们正朝着将庞大的代码管道分离为较小的代码管道的方向发展。但是在此之前,我需要一些与此相关的反馈。

目前,我们为其中一个项目部署了一个代码管道:

  • 网络堆栈(VPC,子网等)
  • 资源堆栈(RDS,Redis,DynamoDB,S3存储桶)
  • Firehose-With-Transformation-Lambda-Stack(使用转换lambda设置firehose,将数据存储在S3中)
  • Lambda堆栈(特定于项目的业务逻辑)
  • API网关堆栈(端点,api密钥,基本路径映射)
  • 监视堆栈(从先前堆栈的所有资源中获取指标,然后显示一个仪表板)

代码管道由代码提交触发,因此每当我们推送代码更改时,管道都会被触发。

现在,有两个主要原因使我们想分开上面的管道。

  1. lambda的微小变化需要很长时间才能完成 代码管道。 ->快速解决方案直接从更新lambda 在make文件中直接直接更新lambda,但这就是更多 骇客。
  2. 多个项目正在使用网络等资源以及RDS和DynamoDB等数据库 有自己的小型基础架构。
  3. 安排更多和更少的代码管道将使我们能够进行关注点分离,而不必再次进行关注, 同样,当在 基础架构中的其他堆栈。

基于以上信息,我有几个问题

  1. 该方法的优缺点是什么?
  2. 当父代码行结束时,如何执行一个代码管道的触发? (是否要使用CW事件?)-万一需要 父堆栈中发生了更改(在不同的代码管道中) 其中涉及到资源的替换,因此涉及价值的替换 需要传播到子堆栈(以不同的方式 代码管道)

更多信息:

在研究期间-这就是我发现的。可以基于CodePipeline状态更改触发的Cloudwatch事件规则-https://docs.aws.amazon.com/codepipeline/latest/userguide/detect-state-changes-cloudwatch-events.html

此外,AWS解决方案架构师指出,我可以将Step函数用于CodePipeline同步,但是对于不同的CodePipelines,我需要多个启动状态。

0 个答案:

没有答案