从 CloudFormation 堆栈集中删除堆栈 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从 CloudFormation 堆栈集中删除堆栈

您可以使用 CloudFormation 控制台或 Amazon CLI 从堆栈集中删除堆栈。

注意

删除顶级组织单元(OU)的堆栈后,该 OU 将不再是堆栈集的目标。

从堆栈集中删除堆栈(控制台)

  1. 登录到 Amazon Web Services Management Console 并打开 Amazon CloudFormation 控制台 https://console.aws.amazon.com/cloudformation

  2. 在屏幕顶部的导航栏中,选择您在其中创建了堆栈集的 Amazon Web Services 区域。

  3. 从导航窗格中,选择 StackSets。在 StackSets 页面上,选择堆栈集。

  4. 选定堆栈集后,从操作菜单中选择从堆栈集中删除堆栈

  5. 设置部署选项页面上,首先选择要删除堆栈的账户和区域。

    1. [自行管理权限] 对于账户,选择在账户中部署堆栈在组织单元中部署堆栈

      如果选择在账户中部署堆栈,请将目标账号粘贴到目标账号文本框中,并使用逗号分隔多个账号。

      如果选择在组织单元中部署堆栈,请将目标 OU ID 粘贴到组织编号文本框中,以将指定组织所属的所有账户作为目标。

    2. [服务管理权限] 对于组织单位(OU),请指定目标 OU ID。

      重要

      CloudFormation 将从指定目标 OU 及其子组织单元中删除的堆栈。

      对于账户筛选条件类型,您可以选择以下选项之一并提供账号,从而细化要删除堆栈的账户。

      • (默认)– 从指定 OU 中的所有账户内删除堆栈。

      • 交集 – 仅从选定 OU 中特定单独账户内删除堆栈。

      • 差集 – 除特定账户外,从选定 OU 中的所有账户内删除堆栈。

      • 并集 – 从指定 OU 以及额外单独账户中删除堆栈。

    3. 对于指定区域,请选择要从其中的目标账户删除堆栈的区域。

  6. 对于部署选项,请执行以下操作:

    • 对于最大并发账户数,请指定并发处理的账户数量。

    • 对于容错能力,请指定在停止操作之前可以接受的失败次数。

    • 对于保留堆栈,启用此选项可在从堆栈集中移除堆栈时保存堆栈及其关联的资源。资源将保持当前状态,但不再是堆栈集的一部分。

    • 对于区域并发,请选择处理区域的方式:顺序(一次处理一个区域)或并行(并发处理多个区域)。

    • 对于并发模式,请选择在操作执行期间的并发行为方式。

      • 严格容错 – 操作失败时降低并发级别,保持在容错能力 +1 之内。

      • 软容错 – 即使失败,仍保持您指定的并发级别(最大并发账户数的值)。

  7. 选择下一步

  8. 审核页面上,审核您的选择。要进行更改,请在相关部分选择编辑

  9. 准备好从堆栈集中删除堆栈时,请选择提交

    完成堆栈删除后,您可在堆栈集详细信息页面的堆栈实例选项卡上验证相关堆栈是否已从堆栈集中删除。

从堆栈集中删除堆栈(Amazon CLI)

如果您担任委托管理员,则每次运行堆栈集命令时都必须将 --call-as 选项设置为 DELEGATED_ADMIN

--call-as DELEGATED_ADMIN
  1. 使用 delete-stack-instances 命令和堆栈集的名称。

    在这些示例中,我们使用 --no-retain-stacks选项,因为我们将不会保留任何堆栈。如果要保留堆栈及其资源,请使用 --retain-stacks,而不是 --no-retain-stacks

    对于 --regions,请指定要从中删除堆栈的 Amazon Web Services 区域,例如 us-west-2us-east-1

    使用 --operation-preferences 选项设置并发账户处理和其他首选项。这些示例使用基于计数的设置。请注意,MaxConcurrentCount 不得大于 FailureToleranceCount + 1。对于基于百分比的设置,请改用 FailureTolerancePercentageMaxConcurrentPercentage

    [自行管理权限] 对于 --accounts 选项,指定要从中删除堆栈的账户 ID。

    aws cloudformation delete-stack-instances --stack-set-name my-stackset \ --accounts account_ID_1 account_ID_2 \ --regions us-west-2 us-east-1 \ --no-retain-stacks \ --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0

    [服务托管权限] 对于 --deployment-targets,指定要从中删除堆栈的组织根 ID 或组织单元(OU)ID。

    重要

    CloudFormation 将从指定目标 OU 及其子组织单元中删除的堆栈。

    aws cloudformation delete-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5jlwo", "ou-rcuk-slr5lh0a"]' \ --regions us-west-2 us-east-1 \ --no-retain-stacks \ --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0

    有关更多信息,请参阅《Amazon CloudFormation API 参考》中的 DeleteStackInstances

  2. 在完成堆栈删除后,您也可以选择运行 describe-stack-set-operation 命令来显示删除堆栈操作的状态和结果,验证是否已从堆栈集中删除堆栈。对于 --operation-id,使用由您的 delete-stack-instances 命令返回的操作 ID。

    aws cloudformation describe-stack-set-operation --stack-set-name my-stackset \ --operation-id ddf16f54-ad62-4d9b-b0ab-3ed8e9example