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