批量释放ECS实例
更新时间:2019-10-30 10:06:13
运维编排服务OOS为批量释放实例的场景提供了公共模版。只需输入需要被释放的实例ID,就可以达到释放所有实例的操作,避免手动操作单独释放实例。
前提条件
确保需被释放的实例类型属于按量付费或预付费类型。
操作步骤
1、 首先登录到运维编排控制台 。
2、单击公共模版。
3、 根据实例付费情况,在搜索框内搜索ACS-ECS-BulkyDeleteInstances(批量删除按量付费实例)模版或ACS-ECS-BulkyDeletePrepaidInstances(批量删除预付费实例),对其单击创建执行 。ACS-ECS-BulkyDeleteInstances
ACS-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-01Description:en: Bulky delete ECS postpaid instances.zh-cn: 批量删除ECS按量付费实例。name-en: ACS-ECS-BulkyDeleteInstancesname-zh-cn: 批量删除ECS实例categories:- instance_manageParameters:targets:Type: JsonAssociationProperty: TargetsAssociationPropertyMetadata:ResourceType: 'ALIYUN::ECS::Instance'force:Description:en: Whether to force the release of a running instance.zh-cn: 是否强制释放正在运行的实例。Type: BooleanDefault: falserateControl:Description:en: Concurrency ratio of task execution.zh-cn: 任务执行的并发比率。Type: JsonAssociationProperty: RateControlDefault:Mode: ConcurrencyMaxErrors: 0Concurrency: 10OOSAssumeRole:Description:en: The RAM role to be assumed by OOS.zh-cn: OOS扮演的RAM角色。Type: StringDefault: OOSServiceRoleRamRole: '{{ OOSAssumeRole }}'Tasks:- Name: getInstanceDescription:en: Views the ECS instances.zh-cn: 获取ECS实例。Action: 'ACS::SelectTargets'Properties:ResourceType: 'ALIYUN::ECS::Instance'Filters:- '{{ targets }}'Outputs:instanceIds:Type: ListValueSelector: 'Instances.Instance[].InstanceId'- Name: deleteInstanceAction: 'ACS::ExecuteAPI'Description:en: Deletes ECS instance with the specified instance ID.zh-cn: 通过指定实例ID删除实例。Properties:Service: ECSAPI: DeleteInstanceParameters:InstanceId: '{{ ACS::TaskLoopItem }}'Force: '{{ force }}'Loop:RateControl: '{{ rateControl }}'Items: '{{ getInstance.instanceIds }}'
该模板顺序执行以下任务:
- 获取目标实例或实例上的Tags。
- 批量删除实例
- 批量删除预付费实例(ACS-ECS-BulkyDeletePrepaidInstances)
FormatVersion: OOS-2019-06-01Description:en: >-Bulky delete prepaid instances.The specified ECS instances must be instopped status.zh-cn: 批量删除ECS预付费实例。指定的ECS实例必须处于已停止状态。name-en: ACS-ECS-BulkyDeletePrepaidInstancesname-zh-cn: 批量删除ECS预付费实例categories:- instance_manageParameters:targets:Type: JsonAssociationProperty: TargetsAssociationPropertyMetadata:ResourceType: 'ALIYUN::ECS::Instance'rateControl:Description:en: Concurrency ratio of task execution.zh-cn: 任务执行的并发比率。Type: JsonAssociationProperty: RateControlDefault:Mode: ConcurrencyMaxErrors: 0Concurrency: 10OOSAssumeRole:Description:en: The RAM role to be assumed by OOS.zh-cn: OOS扮演的RAM角色。Type: StringDefault: OOSServiceRoleRamRole: '{{ OOSAssumeRole }}'Tasks:- Name: getInstanceDescription:en: Views the ECS instances.zh-cn: 获取ECS实例。Action: 'ACS::SelectTargets'Properties:ResourceType: 'ALIYUN::ECS::Instance'Filters:- '{{ targets }}'Outputs:instanceIds:Type: ListValueSelector: 'Instances.Instance[].InstanceId'- Name: modifyInstanceChargeTypeAction: 'ACS::ExecuteAPI'Description:en: Modify the charge type for prepaid instances to postpaid.zh-cn: 修改预付费实例付费方式为按量付费。Properties:Service: ECSAPI: ModifyInstanceChargeTypeParameters:InstanceIds: '{{ getInstance.instanceIds }}'InstanceChargeType: PostPaid- Name: deleteInstanceAction: '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。
- 将预付费实例修改为按量付费实例
- 批量删除实例

