批量释放ECS实例
系统运维管理OOS为批量释放实例的场景提供了公共模板。只需输入需要被释放的实例ID,就可以达到释放所有实例的操作,避免手动操作单独释放实例。
前提条件
确保需被释放的实例类型属于按量付费或预付费类型。
操作步骤
登录运维编排管理控制台。
单击公共模板。
根据实例付费情况,在搜索框内搜索ACS-ECS-BulkyDeleteInstances(批量删除按量付费实例)模板,对其单击创建执行。
ACS-ECS-BulkyDeleteInstances
单击下一步,设置参数。
输入公共模板参数:ACS-ECS-BulkyDeleteInstances。
参数
说明
示例
target
选择被处理的示例标签 / ECS实例ID
test:oos / i-bp10jvphtux8ad******
force
是否强制删除实例
true/false
rateControl
速率控制类型
并发控制
并发速率
10
最大错误次数
10
执行使用到的权限的来源
可选参数。
(默认设置)当前账号的已有权限:执行您使用的账号的权限动作。请确保您拥有创建自定义镜像涉及的所有ECS API调用权限。
指定RAM角色,使用该角色的权限:如果指定了RAM角色名称,OOS扮演该RAM角色执行运维任务。
当前账号的已有权限
单击下一步,确认,单击创建。
在执行管理中可查看刚刚创建的执行,若创建执行成功,且执行状态处于运行中,则表示实例处于删除中。
状态为成功时,表示实例全部被删除。
查询实例是否被删除。
附录1:公共模板和背后逻辑
批量删除非预付费实例(ACS-ECS-BulkyDeleteInstances)
FormatVersion: OOS-2019-06-01
Description:
en: Bulky delete ECS postpaid instances.
zh-cn: 批量删除ECS按量付费实例。
name-en: ACS-ECS-BulkyDeleteInstances
name-zh-cn: 批量删除ECS实例
categories:
- instance_manage
Parameters:
targets:
Type: Json
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
force:
Description:
en: Whether to force the release of a running instance.
zh-cn: 是否强制释放正在运行的实例。
Type: Boolean
Default: false
rateControl:
Description:
en: Concurrency ratio of task execution.
zh-cn: 任务执行的并发比率。
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Description:
en: The RAM role to be assumed by OOS.
zh-cn: OOS扮演的RAM角色。
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstance
Description:
en: Views the ECS instances.
zh-cn: 获取ECS实例。
Action: 'ACS::SelectTargets'
Properties:
ResourceType: 'ALIYUN::ECS::Instance'
Filters:
- '{{ targets }}'
Outputs:
instanceIds:
Type: List
ValueSelector: 'Instances.Instance[].InstanceId'
- Name: deleteInstance
Action: 'ACS::ExecuteAPI'
Description:
en: Deletes ECS instance with the specified instance ID.
zh-cn: 通过指定实例ID删除实例。
Properties:
Service: ECS
API: DeleteInstance
Parameters:
InstanceId: '{{ ACS::TaskLoopItem }}'
Force: '{{ force }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.instanceIds }}'
该模板顺序执行以下任务:
获取目标实例或实例上的Tags。
批量删除实例。
批量删除预付费实例(ACS-ECS-BulkyDeletePrepaidInstances)
FormatVersion: OOS-2019-06-01
Description:
en: >-
Bulky delete prepaid instances.The specified ECS instances must be in
stopped status.
zh-cn: 批量删除ECS预付费实例。指定的ECS实例必须处于已停止状态。
name-en: ACS-ECS-BulkyDeletePrepaidInstances
name-zh-cn: 批量删除ECS预付费实例
categories:
- instance_manage
Parameters:
targets:
Type: Json
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
rateControl:
Description:
en: Concurrency ratio of task execution.
zh-cn: 任务执行的并发比率。
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Description:
en: The RAM role to be assumed by OOS.
zh-cn: OOS扮演的RAM角色。
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstance
Description:
en: Views the ECS instances.
zh-cn: 获取ECS实例。
Action: 'ACS::SelectTargets'
Properties:
ResourceType: 'ALIYUN::ECS::Instance'
Filters:
- '{{ targets }}'
Outputs:
instanceIds:
Type: List
ValueSelector: 'Instances.Instance[].InstanceId'
- Name: modifyInstanceChargeType
Action: 'ACS::ExecuteAPI'
Description:
en: Modify the charge type for prepaid instances to postpaid.
zh-cn: 修改预付费实例付费方式为按量付费。
Properties:
Service: ECS
API: ModifyInstanceChargeType
Parameters:
InstanceIds: '{{ getInstance.instanceIds }}'
InstanceChargeType: PostPaid
- Name: deleteInstance
Action: 'ACS::ECS::DeleteInstance'
Description:
en: Deletes the ECS instance by instance ID.
zh-cn: 通过实例ID删除实例。
Properties:
instanceId: '{{ ACS::TaskLoopItem }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.instanceIds }}'
该模板顺序执行以下任务:
获取目标实例或实例上的Tags。
将预付费实例修改为按量付费实例。
批量删除实例。