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

从堆栈集中删除堆栈实例

您可以在 AWS 管理控制台中删除堆栈集中的堆栈实例,也可以在 AWS CLI 中使用 AWS CloudFormation 命令进行删除。在此过程中,我们将删除所有堆栈。

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

使用 AWS 管理控制台 删除堆栈实例

  1. https://console.amazonaws.cn/cloudformation 打开 AWS CloudFormation 控制台。

  2. 从导航窗格中,选择 StackSets (堆栈集)。在 StackSets 页面上,选择您在 创建堆栈集 中创建的堆栈集。

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

    
                        从“Actions (操作)”菜单中选择“Delete stacks from StackSet (从堆栈集中删除堆栈)”。
  4. Set deployment options (设置部署选项) 页面上,选择要从中删除堆栈实例的账户。

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

      [服务托管权限] 对于 Accounts (账户),选择 Deploy stacks in organizational units (在组织单位中部署堆栈)。粘贴作为堆栈集目标的 OU 的 ID。

      注意

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

      
                                选择要从中删除堆栈实例的组织单位。
    2. 对于 Deployment regions (部署区域),选择要从中删除堆栈实例的区域。在这种情况下,请设置 美国东部(弗吉尼亚北部)地区 和 美国西部(俄勒冈)区域。

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

      • 对于 Maximum concurrent accounts (最大并发账户数),请保留 Number (数量)1 的默认值。

      • 对于 Failure tolerance (容错),请保留 Number (数量)0 的默认值。

      Retain stacks (保留堆栈) 区域中,保留已禁用的默认设置。

      当您从堆栈集中删除堆栈时,可利用 Retain stacks 选项选择从堆栈集中删除堆栈实例,但保存堆栈及其关联的资源。当您通过选择 Retain stacks 选项从堆栈集保存堆栈时,堆栈的资源将保持当前状态,但堆栈不再是堆栈集的一部分。您无法重新关联保留的堆栈或将现有的已保存堆栈添加到新堆栈集中。该堆栈将永久独立于堆栈集。在此过程中,我们将删除所有堆栈,以准备删除整个堆栈集,因此我们将不会保留堆栈。

      选择下一步

  5. 审核页面上,检查您的选择,然后选择提交

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

    
                        使用堆栈集详细信息页面的堆栈实例选项卡查看有关堆栈实例的信息。

使用 AWS CLI 删除堆栈实例

  1. 运行 delete-stack-instances 命令。对于 --stack-set-name,指定堆栈集名称 my-awsconfig-stackset

    通过在 FailureToleranceCount 参数中将 0 设置为 MaxConcurrentCount 以及将 1 设置为 --operation-preferences 来设置容错能力和最大并发账户数,如以下示例中所示。要改为应用百分比,请使用 FailureTolerancePercentageMaxConcurrentPercentage。在本演练中,我们使用的是计数而不是百分比。

    因为 --retain-stacksdelete-stack-instances 的必需参数,所以,如果您不想保留 (保存) 堆栈,请添加 --no-retain-stacks。在本演练中,我们添加 --no-retain-stacks 参数,因为我们将不会保留任何堆栈。

    [自行管理权限] 将 Account_ID 替换为您按创建堆栈集所述创建堆栈时使用的账户。

    aws cloudformation delete-stack-instances --stack-set-name my-awsconfig-stackset --accounts '["0123456789012"]' --regions '["eu-west-1"]' --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --no-retain-stacks

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

    注意

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

    aws cloudformation delete-stack-instances -stack-set-name my-awsconfig-stackset --deployment-targets OrganizationalUnitIds=["ou-rcuk-1x5jlwo", "ou-rcuk-slr5lh0a"] --regions ["eu-west-1"] --no-retain-stacks
  2. 在完成堆栈删除操作后,您也可以选择运行 describe-stack-set-operation 命令以显示删除堆栈操作的状态和结果,验证是否已从堆栈集中删除堆栈实例。对于 --operation-id,使用由您的 delete-stack-instances 命令返回的操作 ID。

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