如何更新由於我手動刪除的資源而失敗的 CloudFormation 堆疊?

1 分的閱讀內容
0

我手動刪除了由其中一個 AWS CloudFormation 堆疊建立的資源,現在我的堆疊不會更新。

簡短描述

如果您刪除 CloudFormation 堆疊所建立的資源,則堆疊無法更新,且您會收到錯誤訊息。

根據您的資源類型選擇下列其中一個解決方法:

  • 使用唯一名稱更新資源
  • 使用唯一 ID 更新資源

解決方法

使用唯一名稱更新資源

如果刪除的資源支援唯一名稱,您可以手動建立資源來讓堆疊更新。不過,新資源必須與刪除的資源具有相同的名稱。例如,在變更資源名稱時,會影響 CloudFormation 處理資源的方式。這是因為 AWS Identity and Access Management (IAM) 角色是依名稱追蹤的。如果您不小心刪除了 IAM 角色,可以使用相同名稱手動重新建立角色。

若要使用唯一名稱更新 IAM 角色或任何其他資源,請完成下列步驟:

  1. 開啟 AWS CloudFormation 主控台
  2. 選取您的堆疊,然後選擇資源檢視。
  3. 實體 ID 欄中,找到您要取代為新的 IAM 角色之 IAM 角色的實體 ID。
    **注意:**實體 ID 是資源的名稱。
  4. 建立新 IAM 角色,然後為該新角色提供您在步驟 3 中找到的相同實體 ID。
  5. 更新您的堆疊

**注意:**如需詳細資訊,請參閱修改堆疊範本

使用唯一 ID 更新資源

您無法使用唯一 ID 手動重新建立資源,例如路由表。而必須從 CloudFormation 範本中移除資源以及對該資源的任何參照。

**注意:**下列解決方案也適用於不支援唯一名稱或唯一 ID 的資源。例如,在託管區域中設定的記錄。

若要允許 CloudFormation 使用唯一 ID 重新建立路由表或任何其他資源,請完成下列步驟:

  1. 在 CloudFormation 範本中,移除路由表及其任何參照。
  2. 更新堆疊
    **注意:**CloudFormation 嘗試刪除路由表。由於資源已刪除,因此 CloudFormation 將刪除視為成功的操作。
  3. 將路由表以及您需要的任何其他資源或參照新增至 CloudFormation 範本。
  4. 再次更新您的堆疊。
    **注意:**CloudFormation 會重新建立已刪除的資源。

相關資訊

AWS CloudFormation 疑難排解

AWS 官方
AWS 官方已更新 3 年前