小编Lig*_*303的帖子

AWS cdk 堆栈部署顺序

我正在寻找一种方法来指定项目中堆栈的部署顺序。我知道我可以添加依赖项,但是,这些堆栈彼此不依赖,我可能想稍后删除一些。

我有一个每个其他堆栈(例如 rds)全局所需的服务框架。这些都是从一开始就部署的。

  • 应用程序网络
  • 应用程序-环球资源

现在我想为新客户添加堆栈,这些堆栈将依赖于 2 个全局堆栈,并且相互依赖,但不依赖于任何其他客户的堆栈。

例如

  • 应用程序客户-A-EC2(取决于应用程序网络)
  • 应用程序客户A-Lambda(取决于应用程序客户A-EC2)
  • App-Customer-A-Settings(取决于 App-GlobalResources、App-Customer-A-Lambdas)

  • App-Customer-B-EC2(取决于应用程序网络)
  • App-Customer-B-Lambdas(取决于 App-Customer-B-EC2)
  • App-Customer-B-Settings(取决于 App-GlobalResources、App-Customer-B-Lambdas)

我希望所有这些堆栈都按此顺序部署。首先是全局堆栈,然后是所有客户 a,然后是所有客户 b。

然而,这就是 cdk 正在做的事情:

  • 应用程序网络
  • 应用程序-环球资源
  • 应用程序-客户-A-EC2
  • 应用程序-客户-B-EC2
  • 应用程序客户 A-Lambda
  • 应用程序客户 B-Lambda
  • 应用程序-客户-A-设置
  • 应用程序-客户-B-设置

这意味着客户A必须等到所有其他客户资源都生成后才能使用该系统等等。由于客户堆栈之间不存在交叉依赖关系,因此不必按照 cdk 的顺序进行部署。

那么,我有什么选择呢?除了添加依赖项之外?我最初认为它会按堆栈名称或构造路径按字母顺序排序,但似乎并非如此。

谢谢你!

编辑:我浏览了 cdk 应用程序的代码并找到了排序代码。目前我的情况没有办法。CDK 使用的排序类型将始终产生观察到的模式。

我现在正在通过添加依赖项来解决问题。当删除“中间”且具有依赖关系的堆栈时,我必须用参数销毁它们-e

aws-cdk

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

aws-cdk ×1