更新您的堆疊範本 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

更新您的堆疊範本

若要修改 CloudFormation 堆疊中的資源或屬性,您必須更新堆疊的範本。從該堆疊的現有範本開始,並對其進行變更。如果您的範本存放在來源控制系統中,請使用該範本的副本做為起點。否則,您可以從 CloudFormation 取得範本的副本。

如果您只想要變更堆疊的參數或設定 (例如堆疊的 Amazon SNS 主題),則可以重複使用現有的範本,而無需取得複本。

您可以使用文字編輯器或 來更新 CloudFormation 堆疊範本基礎設施編寫器

使用 Infrastructure Composer 更新現有的堆疊範本
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 堆疊頁面上,選擇要更新的堆疊名稱。

  3. 選擇範本索引標籤,然後選擇 Infrastructure Composer 中的檢視

    CloudFormation 會在 Infrastructure Composer 中開啟範本。

  4. 使用下列其中一種方法更新您的範本:

    • Canvas 介面:在這裡,您可以從資源面板中拖放。按兩下卡片以開啟資源屬性面板來設定資源。視需要連接資源。如需使用 Canvas 介面的詳細說明,請參閱如何編寫 AWS Infrastructure Composer

    • 範本界面:從 Canvas 切換到 範本界面。對範本程式碼進行內嵌更新。視需要在 JSON 之間切換為 YAML 格式。

  5. 選擇驗證以檢查範本中是否有任何語法錯誤。

  6. 當您準備好將變更匯出至 CloudFormation 時,請選擇更新範本

使用 更新現有的堆疊範本 AWS CLI
  1. 若要取得您要更新的堆疊範本,請使用 get-template CLI 命令。

  2. 複製範本並將其貼至文字檔案,進行修改後加以儲存。請務必複製範本。該命令會以引號括住範本,請勿複製括住該範本的引號。範本本身會以左大括號開始,並以右大括號結束。您可以在此檔案中指定要進行的堆疊資源變更。

當您變更範本時,請記住下列幾點:

  • 您無法新增、修改或刪除不支援更新的 資源所使用的參數。

  • 對於大多數資源而言,變更資源的邏輯名稱相當於刪除該資源,且會用新資源取而代之。如果任何其他資源與重新命名的資源之間有依存關係,則需一併進行更新,亦可能會遭取代。為了啟動更新作業,您必須更新其他資源的屬性,而不是只變更邏輯名稱。

  • 有些資源可能會限制您可以針對特定屬性設定哪些值。例如,RDS 資料庫執行個體的 AllocatedStorage 屬性變更必須大於目前值。如果您的更新違反這些規則,則該部分將會失敗。

  • 更新一個資源也會影響其他參考資源的人員。如果您使用 RefGetAtt 等函數,根據其他資源設定屬性,CloudFormation 也會在參考資源變更時更新參考資源。

  • 如需更新特定資源屬性效果的相關資訊,請參閱AWS 資源類型參考。更新各個屬性將產生下列其中一種效果:

  • 您可以使用 CLI 命令或在主控台上指定範本,來驗證範本的 JSON validate-template 或 YAML 語法。主控台會自動執行驗證。不過,這些方法只會驗證範本的語法,而且不會驗證您為資源指定的屬性值對該資源有效。如需更複雜的驗證或檢查最佳實務,您也可以使用其他工具,例如 CloudFormation Linter (cfn-lint)CloudFormation Rain (雨水 fmt)

注意

有時 CloudFormation 不允許您嘗試進行的特定變更,而且會通知您不允許變更。不過,此訊息可能會以非同步方式發生,因為 CloudFormation 預設會以非決定性順序建立和更新資源。