本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
更新您的堆疊範本
要修改 CloudFormation 堆疊中的資源或屬性,您必須更新堆疊的範本。以該堆疊的現有範本為基礎,對其進行變更。如果您要在原始程式碼控制系統中管理範本,則請將該範本的複本做為起點。不然,您亦可從 CloudFormation 取得範本的複本。
若您僅希望變更堆疊的參數或設定 (例如:堆疊的 Amazon SNS 主題),可以無需複本,重複使用現有堆疊範本。
您可以使用文字編輯器或 Infrastructure Composer 來更新 CloudFormation 堆疊範本。
透過 Infrastructure Composer 更新現有堆疊範本
請登入 AWS 管理主控台,開啟位於 https://console.aws.amazon.com/cloudformation
的 CloudFormation 主控台。 -
在堆疊頁面中,選擇要更新的堆疊名稱。
-
選擇範本索引標籤,再選擇 Infrastructure Composer 中的檢視。
CloudFormation 在 Infrastructure Composer 中開啟範本。
-
使用下列方法之一更新您的範本:
-
畫布介面:在這裡,您可以從資源面板中拖放。按兩下卡片以開啟資源屬性面板來設定資源。根據需要連接資源。如需使用畫布介面的詳細說明,請參閱如何在 AWS Infrastructure Composer 中編寫。
-
範本介面:從畫布切換到範本介面。對範本程式碼進行內嵌更新。根據需要在 JSON 和 YAML 格式之間切換。
-
-
選擇驗證,檢查範本中的語法錯誤。
-
準備好將變更匯出至 CloudFormation 時,選擇更新範本。
使用 AWS CLI 更新現有堆疊集範本
-
如需取得要更新的堆疊範本,請採用 get-template CLI 命令。
-
複製範本並將其貼至文字檔案,進行修改後加以儲存。請務必僅複製範本。該命令會以引號括住範本,請勿複製括住該範本的引號。範本本身會以左大括號開始,並以右大括號結束。您可以在此檔案中指定要進行的堆疊資源變更。
變更範本時,請注意下列事項:
-
在資源不支援更新的情況下,您將無法新增、修改或刪除該資源所使用的參數。
-
對於大多數資源而言,變更資源的邏輯名稱相當於刪除該資源,且會用新資源取而代之。如果任何其他資源與重新命名的資源之間有依存關係,則需一併進行更新,亦可能會遭取代。為了啟動更新作業,您必須更新其他資源的屬性,而不是只變更邏輯名稱。
-
部分資源對特定屬性的可設定數值有約束條件。例如,變更 RDS 資料庫執行個體的
AllocatedStorage屬性時,新數值必須大於目前數值。若您的更新違反這些規則,該部分操作將會失敗。 -
更新一項資源也可能影響參考它的其他資源。若您使用 Ref 函數 或 Fn::GetAtt 函數 等函數,根據另一項資源設定某個屬性,則當被參考的資源變更時,CloudFormation 也會更新參考它的資源。
-
如需有關更新特定資源屬性效果的資訊,請參閱 AWS 資源和屬性類型參考。更新各個屬性將產生下列其中一種效果:
-
您可以使用 validate-template CLI 命令,或在主控台上指定範本,驗證範本的 JSON 或 YAML 語法。主控台會自動執行驗證。但這些方法僅驗證您範本的語法,而不會驗證您為資源指定的屬性數值是否對該資源有效。如需更複雜的驗證或檢查最佳實務,也可以使用其他工具,如 CloudFormation Linter (cfn-lint)
和 CloudFormation Rain (rain fmt) 。
注意
有時 CloudFormation 會禁止您嘗試進行的某些變更,並告知您該變更不被允許。然而在預設情況下,CloudFormation 會採隨機順序建立與更新資源,因此系統可能以非同步方式顯示該訊息。