簡體   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