批量释放ECS实例
更新时间:2019-10-30 10:06:13
运维编排服务OOS为批量释放实例的场景提供了公共模版。只需输入需要被释放的实例ID,就可以达到释放所有实例的操作,避免手动操作单独释放实例。
前提条件
确保需被释放的实例类型属于按量付费或预付费类型。
操作步骤
1、 首先登录到运维编排控制台 。
2、单击公共模版。
3、 根据实例付费情况,在搜索框内搜索ACS-ECS-BulkyDeleteInstances(批量删除按量付费实例)模版或ACS-ECS-BulkyDeletePrepaidInstances(批量删除预付费实例),对其单击创建执行 。ACS-ECS-BulkyDeleteInstancesACS-ECS-BulkyDeletePrepaidInstances
4、 单击 下一步,设置参数 。
5、 输入参数公共模版参数:ACS-ECS-BulkyDeleteInstances
参数 | 说明 | 示例 |
---|---|---|
target | 选择被处理的示例标签 / ECS实例 ID | test: oos / i-bp10jvphtux8ad** |
force | 是否强制删除实例 | true/false |
rateControl | 速率控制类型 | 并发控制 |
并发速率 | 10 | |
最大错误次数 | 10 | |
执行使用到的权限的来源 | 可选参数。 - (默认设置)当前账号的已有权限:执行您使用的账号的权限动作。请确保您拥有创建自定义镜像涉及的所有ECS API调用权限。 - 指定RAM角色,使用该角色的权限:如果指定了RAM角色名称,OOS扮演该RAM角色执行运维任务。 |
当前账号的已有权限 |
6、 单击 下一步,确认 ,单击 确认风险并执行 。
7、 在执行管理中可查看刚刚创建的执行,若创建执行成功,且执行状态处于运行中,则表示实例处于删除中。
8、 状态为成功时,表示实例全部被删除。
附录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。
- 将预付费实例修改为按量付费实例
- 批量删除实例