从堆栈集中删除堆栈实例
您可以在 AWS Management Console中删除堆栈集中的堆栈实例,也可以在 AWS CLI 中使用 AWS CloudFormation 命令进行删除。在此过程中,我们将删除所有堆栈。
对于具有服务托管权限的堆栈集,如果您从顶级组织单位 (OU) 中删除堆栈实例,则该 OU 将作为堆栈集的目标移除。
使用 AWS Management Console删除堆栈实例
打开 AWS CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation
。 -
从导航窗格中,选择 StackSets (堆栈集)。在 StackSets(堆栈集)页面上,选择您在 创建堆栈集 中创建的堆栈集。
-
选定堆栈集后,从 Actions(操作)菜单中选择 Delete stacks from StackSet(从堆栈集中删除堆栈)。
-
在 Set deployment options (设置部署选项) 页面上,选择要从中删除堆栈实例的账户。
-
[自行管理权限] 对于 Accounts (账户),选择 Deploy stacks in accounts (在账户中部署堆栈)。在文本框中粘贴您的目标账号,并使用逗号分隔多个号码。
[服务托管权限] 对于 Accounts (账户),选择 Deploy stacks in organizational units (在组织单位中部署堆栈)。粘贴作为堆栈集目标的 OU 的 ID。
注意
StackSets 还会从指定目标 OU 的所有子 OU 中删除堆栈实例。
-
对于 Deployment regions (部署区域),选择要从中删除堆栈实例的区域。在这种情况下,请设置 美国东部(弗吉尼亚北部)地区 和 美国西部(俄勒冈)区域。
-
对于 Deployment options (部署选项):
-
对于 Maximum concurrent accounts (最大并发账户数),请保留 Number (数量) 和 1 的默认值。
-
对于 Failure tolerance (容错),请保留 Number (数量) 和 0 的默认值。
在 Retain stacks (保留堆栈) 区域中,保留已禁用的默认设置。
当您从堆栈集中删除堆栈时,可利用 Retain stacks 选项选择从堆栈集中删除堆栈实例,但保存堆栈及其关联的资源。当您通过选择 Retain stacks 选项从堆栈集保存堆栈时,堆栈的资源将保持当前状态,但堆栈不再是堆栈集的一部分。要重新关联堆栈或将现有堆栈添加到堆栈集,请参阅将堆栈导入 AWS CloudFormation StackSets。
选择 Next(下一步)。
-
-
-
在审核页面上,检查您的选择,然后选择提交。
-
完成堆栈删除操作后,您可在堆栈集详细信息页面的 Stack instances (堆栈实例) 选项卡上验证此堆栈实例是否已从堆栈集中删除。
使用 AWS CLI删除堆栈实例
担任委托管理员时,您必须在每次运行 StackSets 命令时将 --call-as
参数设置为 DELEGATED_ADMIN
。
--call-as
DELEGATED_ADMIN
-
运行
delete-stack-instances
命令。对于--stack-set-name
,指定堆栈集名称my-awsconfig-stackset
。通过在
FailureToleranceCount
参数中将0
设置为MaxConcurrentCount
以及将1
设置为--operation-preferences
来设置容错能力和最大并发账户数,如以下示例中所示。要改为应用百分比,请使用FailureTolerancePercentage
或MaxConcurrentPercentage
。在本演练中,我们使用的是计数而不是百分比。注意
MaxConcurrentCount
的值依赖于FailureToleranceCount
的值。MaxConcurrentCount
最多比FailureToleranceCount
多 1。因为
--retain-stacks
是delete-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 -
在完成堆栈删除操作后,您也可以选择运行
describe-stack-set-operation
命令以显示删除堆栈操作的状态和结果,验证是否已从堆栈集中删除堆栈实例。对于--operation-id
,使用由您的delete-stack-instances
命令返回的操作 ID。aws cloudformation describe-stack-set-operation --stack-set-name
stackSetName
--operation-idddf16f54-ad62-4d9b-b0ab-3ed8e9example