本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用巢狀堆疊在其他堆疊中嵌入堆疊
「巢狀堆疊」是作為其他堆疊一部分建立的堆疊。您可以在另一個堆疊中建立巢狀堆疊,方法是使用 AWS::CloudFormation::Stack資源。
隨著您的基礎設施逐漸成長,可能出現的常見模式即是您會在多個範本中宣告相同的元件。您可以分離這些常見的元件,為他們建立專用的範本。然後,使用模板中的資源引用其他模板,創建嵌套堆棧。
例如,假設您有一個用於您大多數堆疊的負載平衡器組態。相較於複製相同的組態並在您的範本中貼上,您可以為負載平衡器建立專用的範本。然後,您只需要在其他範本中使用資源參考該範本。
巢狀堆疊本身也能包含其他巢狀堆疊,形成堆疊的階層,如下圖所示。「根堆疊」為最上層的堆疊,即為所有巢狀堆疊最終所屬的堆疊。此外,每一個巢狀堆疊都有一個立即的「父系堆疊」。針對第一層巢狀堆疊,在下圖中,根堆疊也是父系堆疊,例如:
-
堆疊 A 是所有其他、巢狀、階層中堆疊的根堆疊。
-
針對堆疊 B,堆疊 A 同時是其父系堆疊及根堆疊。
-
針對堆疊 D,堆疊 C 是父系堆疊;針對堆疊 C,堆疊 B 為其父系堆疊。
分割 CloudFormation 範本
此範例示範如何採用單一大型 CloudFormation 範本,並使用巢狀範本將其重新組織成更結構化且可重複使用的設計。最初,「嵌套堆棧之前」模板顯示在一個文件中定義的所有資源。隨著資源數量的增長,這可能會變得混亂且難以管理。「巢狀堆疊後」範本會將資源分割成較小、獨立的範本,稱為巢狀堆疊。每個嵌套堆棧處理一組特定的相關資源,使整體結構更有條理,更易於維護。
巢狀堆疊之前 |
嵌套堆棧之後 |
---|---|
|
|
在巢狀堆疊上執行堆疊作業
當您有包含巢狀堆疊的堆疊時,在執行某些動作時,您必須小心並正確處理巢狀堆疊。某些堆疊作業 (例如堆疊更新) 應該從根堆疊啟動,而不是直接在巢狀堆疊本身上執行。此外,有時巢狀堆疊的存在可能會影響根堆疊上執行作業的方式。
使用下列程序尋找根堆疊和巢狀堆疊。
檢視巢狀堆疊的根堆疊
-
登入 AWS Management Console 並打開 AWS CloudFormation 控制台在 https://console.aws.amazon.com/雲
形成。 -
在「堆疊」頁面上,選擇您要檢視根堆疊的巢狀堆疊名稱。
巢狀堆疊會顯示在其堆疊名稱NESTED上方。
-
在 [堆疊資訊] 索引標籤的 [概觀] 區段中,選擇列為根堆疊的堆疊名稱。
檢視屬於根堆疊的巢狀堆疊
-
從您要檢視其巢狀堆疊的根堆疊中,選擇 [資源] 索引標籤。
-
在「類型」欄中,尋找類型為:: AWSCloudFormation: Stack 的資源。