繁体   English   中英

AWS CDK:如何从单个堆栈部署多个堆栈

[英]AWS CDK: How can I deploy multiple stack from a single stack

是否有可能或以任何方式从单个堆栈部署多个堆栈? 例如,我定义了三个堆栈,即DynamoDBStackIAMRoleStackLambdaStack ,现在我希望将这些堆栈部署在DeployAllStacks下,以便它在 AWS CloudFormation 堆栈列表中被识别为单个堆栈? 我意识到以下方法是错误的并且cdk ls识别为 4 个堆栈而不是一个,我正在尝试这样的事情:

public DeployAllStacks(Construct scope, string id, IStackProps props = null):base(scope,id, props)
{
   new DynamoDBStack(this, "DataBase");
   new IAMRoleStack(this, "IAMRole");
   new LambdaStack(this, "Lambda")
}

我知道如果我将所有资源写在一个堆栈中那么它是可行的,但是我希望代码更整洁并编写单独的堆栈以在其他地方重用。

你不能。 堆栈是 CDK中的部署单元 它们可以分组,但在云中单独部署。

不管。 如果代码重用是您的目标,那么构造子类是惯用的 CDK 组合方法。 这就是 CDK 本身的构建方式。 多堆栈应用程序也可以在更大的项目中发挥作用,尽管这会增加部署和跨堆栈引用*的摩擦。 有关设计注意事项,请参阅关于构造堆栈的 CDK 最佳实践指南。 如果我正确地解释了您的堆栈名称,那么一个堆栈似乎是一个不错的选择,如果需要,可以为代码组织/重用构造子类。


* CDK 还支持CloudFormation 嵌套堆栈,这是一种非 CDK 原生的重用方法。 但是子堆栈仍然是“出现在列表中”的堆栈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM