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