我想從 AWS CloudFormation 堆疊集中刪除堆疊執行個體。刪除失敗,因為目標 AWS 帳戶已關閉或暫停。
簡短說明
若要刪除已關閉或暫停的帳戶之堆疊執行個體,您必須執行 DeleteStackInstances 作業,並將 RetainStacks 選項設定為 true。這會將堆疊執行個體從堆疊集中斷連線,但不會在目標帳戶中刪除該堆疊執行個體。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
若要從已關閉或暫停的帳戶中刪除堆疊執行個體,請使用 CloudFormation 主控台或 AWS CLI。依照您的堆疊集權限模型完成以下解決步驟。
使用自行管理權限刪除堆疊集
使用 CloudFormation 主控台
請完成下列步驟:
- 開啟 CloudFormation console (CloudFormation 主控台)。
- 在導覽窗格中,選擇 StackSets。
- 在 StackSet 名稱 欄中,選取該堆疊集。
- 選擇 Actions (動作),然後選擇 Delete stacks from StackSet (從 StackSet 刪除堆疊)。
- 在 Set deployment options (設定部署選項) 頁面上,於 Account numbers (帳戶號碼) 中輸入已關閉或暫停帳戶的 12 位數 ID。
- 於 Specify Regions (指定區域) 中,選擇您的堆疊執行個體所在的 AWS 區域。
- 在 Deployment options (部署選項) 區段中,啟用 Retain stacks (保留堆疊),然後選擇 Next (下一步)。
- 在 Review (檢閱) 頁面上,選擇 Submit (提交)。
使用 AWS CLI
執行以下 delete-stack-instances AWS CLI 命令:
$ aws cloudformation delete-stack-instances --stack-set-name ExampleStackSetName --accounts 1234567890abcdef0 --regions aa-example-1 --retain-stacks
注意:請將 ExampleStackSetName 替換為您的堆疊集名稱,將1234567890abcdef0 替換為您的堆疊執行個體帳戶 ID,並將 aa-example-1 替換為您的執行個體區域。
使用服務管理權限刪除堆疊集
使用 CloudFormation 主控台
請完成下列步驟:
- 開啟 CloudFormation console (CloudFormation 主控台)。
- 在導覽窗格中,選擇 StackSets。
- 在 StackSet 名稱 欄中,選取該堆疊集。
- 選擇 Actions (動作),然後選擇 Delete stacks from StackSet (從 StackSet 刪除堆疊)。
- 在 Set deployment options (設定部署選項) 頁面上,執行以下動作:
輸入目標帳戶所在的 AWS Organizations 單位 ID。
**注意:**如果您不知道已關閉或暫停帳戶的組織單位 ID (OU ID),請改用根 OU ID。
選擇 Account filter type (帳戶篩選類型),然後選擇 Intersection (交集)。
輸入目標帳戶號碼,以僅刪除 OU 中的個別帳戶,而非整個 AWS Organizations 單位。
- 在 Specify Regions (指定區域) 區段中,選擇您的堆疊執行個體所在的區域。
- 在 Deployment options (部署選項) 區段中,啟用 Retain stacks (保留堆疊),然後選擇 Next (下一步)。
- 在 Review (檢閱) 頁面上,選擇 Submit (提交)。
AWS CLI
執行 delete-stack-instances 命令:
$ aws cloudformation delete-stack-instances --stack-set-name ExampleStackSetName --deployment-targets Accounts=1234567890abcdef0,OrganizationalUnitIds=abcdef01234567890,AccountFilterType=INTERSECTION --regions aa-example-1 --retain-stacks
**注意:**請將 ExampleStackSetName 替換為您的堆疊集名稱,將 1234567890abcdef0 替換為您的堆疊執行個體帳戶 ID,將 abcdef01234567890 替換為您的堆疊執行個體帳戶 OU,並將 aa-example-1 替換為您的執行個體區域。
相關資訊
StackSets 狀態代碼
從 AWS CloudFormation StackSets 刪除堆疊