使用 CloudFormation 控制台或 AWS CLI 删除堆栈实例 - AWS CloudFormation

使用 CloudFormation 控制台或 AWS CLI 删除堆栈实例

您可以使用 CloudFormation 控制台或 AWS CLI 删除堆栈集中的堆栈实例。

对于具有服务托管权限的堆栈集,如果您从顶级组织单位 (OU) 中删除堆栈实例,则该 OU 将作为堆栈集的目标移除。

使用 CloudFormation 控制台删除堆栈实例

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

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

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

  4. 选定堆栈集后,从 Actions(操作)菜单中选择 Delete stacks from StackSet(从堆栈集中删除堆栈)。

  5. 设置部署选项页面上,选择要从中删除堆栈实例的账户。

    1. [自行管理权限] 对于 Accounts (账户),选择 Deploy stacks in accounts (在账户中部署堆栈)。在文本框中粘贴您的目标账号,并使用逗号分隔多个号码。

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

      注意

      StackSets 还会从指定目标 OU 的所有子 OU 中删除堆栈实例。

    2. 对于指定区域,选择要从中删除堆栈实例的区域。

    3. 对于 Deployment options (部署选项)

      • 对于最大并发账户数,请根据需要修改最大并发账户数。

      • 对于容错,根据需要修改容错。

      • 对于保留堆栈,选择是否启用此选项以从堆栈集中删除堆栈实例,但保存堆栈及其关联的资源。当您通过启用保留堆栈选项保存堆栈集的堆栈时,堆栈的资源将保持其当前状态,但堆栈不再是该堆栈集的一部分。要重新关联堆栈或将现有堆栈添加到堆栈集,请参阅有关将堆栈导入堆栈集的要求

      • 对于区域并发,根据需要修改区域并发。

      • 对于并发模式,根据需要修改并发模式。

    4. 选择下一步

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

  7. 当您准备好从堆栈集中删除堆栈实例时,请选择提交

    完成堆栈删除操作后,您可在堆栈集详细信息页面的 Stack instances (堆栈实例) 选项卡上验证此堆栈实例是否已从堆栈集中删除。

使用 AWS CLI删除堆栈实例

担任委托管理员时,您必须在每次运行 StackSets 命令时将 --call-as 选项设置为 DELEGATED_ADMIN

--call-as DELEGATED_ADMIN
  1. 使用 delete-stack-instances 命令。对于 --stack-set-name,指定堆栈集名称。

    由于 --retain-stacksdelete-stack-instances 命令所必需,因此如果您不想保留(保存)堆栈,请添加 --no-retain-stacks。在本例中,我们添加 --no-retain-stacks 选项,因为我们将不会保留任何堆栈。

    对于 --regions,指定要从中删除堆栈实例的区域。在本例中为美国西部(俄勒冈州)区域和美国东部(弗吉尼亚州北部)区域。

    [自行管理权限] 对于 --accounts 选项,指定您用于创建堆栈集的账户。

    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

    [服务管理权限] 对于 --deployment-targets,指定您在其中创建堆栈实例的组织(根)ID 或 OU ID。

    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
    注意

    StackSets 还会从指定目标 OU 的所有子 OU 中删除堆栈实例。

    要指定 CloudFormation 如何执行此堆栈集操作的首选项,请指定 --operation-preferences 选项,如以下示例所示。出于本示例的目的,我们使用的是计数而不是百分比。要改为应用百分比,请使用 FailureTolerancePercentageMaxConcurrentPercentage

    --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1
    注意

    MaxConcurrentCount 的值依赖于 FailureToleranceCount 的值。MaxConcurrentCount 最多比 FailureToleranceCount 多 1。

  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