gpt4 book ai didi

aws-cdk - AWS cdk Stack 部署顺序

转载 作者:行者123 更新时间:2023-12-04 13:57:09 25 4
gpt4 key购买 nike

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

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

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

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

    例如。
  • App-Customer-A-EC2(取决于 App-Networking)
  • App-Customer-A-Lambdas(取决于 App-Customer-A-EC2)
  • App-Customer-A-Settings(取决于 App-GlobalResources、App-Customer-A-Lambdas)


  • App-Customer-B-EC2(取决于 App-Networking)
  • App-Customer-B-Lambdas(取决于 App-Customer-B-EC2)
  • App-Customer-B-Settings(取决于 App-GlobalResources、App-Customer-B-Lambdas)

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

    然而,这就是 cdk 正在做的事情:
  • 应用网络
  • 应用-环球资源
  • App-Customer-A-EC2
  • App-Customer-B-EC2
  • App-Customer-A-Lambdas
  • App-Customer-B-Lambdas
  • 应用-客户-A-设置
  • 应用-客户-B-设置

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

    那么,我在这里有哪些选择?除了添加依赖项?我最初认为它会按堆栈名称或可能按 cunstruct 路径的字母顺序排序,但似乎并非如此。

    谢谢!

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

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

    最佳答案

    你可以调用 cdk deploy [stack_name]多次首先部署“必要的”堆栈(例如部署 RDS 或网络组件的堆栈),最后调用 cdk deploy *配置所有剩余的堆栈。

    关于aws-cdk - AWS cdk Stack 部署顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59856998/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com