跳至内容

如何从已关闭或暂停的 AWS 账户中设置的 CloudFormation 堆栈中删除堆栈实例?

2 分钟阅读
0

我想从 AWS CloudFormation 堆栈集中删除堆栈实例。由于目标 AWS 账户已关闭或暂停,删除失败。

简短描述

要删除已关闭或暂停账户的堆栈实例,必须在将 RetainStacks 选项设置为 true 的情况下执行 DeleteStackInstances 操作。这会断开堆栈实例与堆栈集的连接,并且不会删除目标账户中的堆栈实例。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

要从已关闭或暂停的账户中删除堆栈实例,请使用 CloudFormation 控制台或 AWS CLI。完成堆栈集权限模型的解析。

删除具有自行管理权限的堆栈集

使用 CloudFormation 控制台

完成以下步骤:

  1. 打开 CloudFormation 控制台
  2. 在导航窗格中,选择 StackSets(堆栈集)。
  3. StackSet name(堆栈集名称)列中,选择堆栈集。
  4. 选择 Actions(操作),然后选择 Delete stacks from StackSet(从堆栈集中删除堆栈)。
  5. Set deployment options(设置部署选项)页面的 Account numbers(账号)中,输入已关闭或暂停账户的 12 位 ID。
  6. 对于 Specify Regions(指定区域),选择您的堆栈实例的 AWS 区域。
  7. 对于 Deployment options(部署选项),请打开 Retain stacks(保留堆栈),然后选择 Next(下一步)。
  8. 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 控制台

完成以下步骤:

  1. 打开 CloudFormation 控制台
  2. 在导航窗格中,选择 StackSets(堆栈集)。
  3. StackSet name(堆栈集名称)列中,选择堆栈集。
  4. 选择 Actions(操作),然后选择 Delete stacks from StackSet(从堆栈集中删除堆栈)。
  5. Set deployment options(设置部署选项)页面上,执行以下操作:
    输入目标账户所在的 AWS Organizations 单位 ID。
    **注意:**如果您不知道已关闭或暂停账户的组织单位 ID (OU ID),请改为使用根 OU ID
    选择 Account filter type(账户筛选器类型),然后选择 Intersection(交集)。
    输入目标账号,这样您就可以删除 OU 中的单个账户,而不是删除整个 AWS Organizations 单位。
  6. Specify Regions(指定区域)部分中,选择您的堆栈实例的区域。
  7. Deployment options(部署选项)部分中,打开 Retain stacks(保留堆栈),然后选择 Next(下一步)。
  8. 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 中删除堆栈

AWS 官方已更新 3 个月前