运维编排服务OOS为批量释放实例的场景提供了公共模版。只需输入需要被释放的实例ID,就可以达到释放所有实例的操作,避免手动操作单独释放实例。
前提条件
确保需被释放的实例类型属于按量付费或预付费类型。
操作步骤
- 登录运维编排管理控制台。
- 单击公共模版。
- 根据实例付费情况,在搜索框内搜索ACS-ECS-BulkyDeleteInstances(批量删除按量付费实例)模版或ACS-ECS-BulkyDeletePrepaidInstances(批量删除预付费实例),对其单击创建执行。
ACS-ECS-BulkyDeleteInstances
ACS-ECS-BulkyDeletePrepaidInstances
- 单击下一步,设置参数。
- 输入公共模版参数: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。
- 将预付费实例修改为按量付费实例。
- 批量删除实例。