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