批量释放ECS实例_实例运维_最佳实践_运维编排服务-阿里云

 知识中心     |      2020-06-23 17:29:11

批量释放ECS实例

更新时间:2019-10-30 10:06:13

本页目录

运维编排服务OOS为批量释放实例的场景提供了公共模版。只需输入需要被释放的实例ID,就可以达到释放所有实例的操作,避免手动操作单独释放实例。

前提条件

确保需被释放的实例类型属于按量付费预付费类型。

操作步骤

1、 首先登录到运维编排控制台
2、单击公共模版
3、 根据实例付费情况,在搜索框内搜索ACS-ECS-BulkyDeleteInstances(批量删除按量付费实例)模版或ACS-ECS-BulkyDeletePrepaidInstances(批量删除预付费实例),对其单击创建执行ACS-ECS-BulkyDeleteInstances
_2019_10_29_10_24_42ACS-ECS-BulkyDeletePrepaidInstances
1571896019420_c332dd12_f873_4281_8e80_a79a1e7eb427
4、 单击 下一步,设置参数1571896245786_d11c0ccd_7956_45f9_83cc_580624bb1be1
5、 输入参数公共模版参数:ACS-ECS-BulkyDeleteInstances

1571974257999_0be5318a_de73_43c2_a6be_eb3a4f4fe166

参数 说明 示例
target 选择被处理的示例标签 / ECS实例 ID test: oos / i-bp10jvphtux8ad**
force 是否强制删除实例 true/false
rateControl 速率控制类型 并发控制
并发速率 10
最大错误次数 10
执行使用到的权限的来源 可选参数。
- (默认设置)当前账号的已有权限:执行您使用的账号的权限动作。请确保您拥有创建自定义镜像涉及的所有ECS API调用权限。
- 指定RAM角色,使用该角色的权限:如果指定了RAM角色名称,OOS扮演该RAM角色执行运维任务。
当前账号的已有权限

oos

6、 单击 下一步,确认 ,单击 确认风险并执行1572243372654_90e80ced_345e_42c3_b1b8_5fb08a415fb2

7、 在执行管理中可查看刚刚创建的执行,若创建执行成功,且执行状态处于运行中,则表示实例处于删除中。1572243761013_85b0eb6c_2af4_48c2_9c10_ab68df7e126c
8、 状态为成功时,表示实例全部被删除。1572243761013_85b0eb6c_2af4_48c2_9c10_ab68df7e126c

9、 查询实例是否被删除1572243865751_b301e02e_2491_48c9_aba4_5565a6c8cbca

附录1:公共模版和背后逻辑

  • 批量删除非预付费实例(ACS-ECS-BulkyDeleteInstances
    1. FormatVersion: OOS-2019-06-01
    2. Description:
    3. en: Bulky delete ECS postpaid instances.
    4. zh-cn: 批量删除ECS按量付费实例。
    5. name-en: ACS-ECS-BulkyDeleteInstances
    6. name-zh-cn: 批量删除ECS实例
    7. categories:
    8. - instance_manage
    9. Parameters:
    10. targets:
    11. Type: Json
    12. AssociationProperty: Targets
    13. AssociationPropertyMetadata:
    14. ResourceType: 'ALIYUN::ECS::Instance'
    15. force:
    16. Description:
    17. en: Whether to force the release of a running instance.
    18. zh-cn: 是否强制释放正在运行的实例。
    19. Type: Boolean
    20. Default: false
    21. rateControl:
    22. Description:
    23. en: Concurrency ratio of task execution.
    24. zh-cn: 任务执行的并发比率。
    25. Type: Json
    26. AssociationProperty: RateControl
    27. Default:
    28. Mode: Concurrency
    29. MaxErrors: 0
    30. Concurrency: 10
    31. OOSAssumeRole:
    32. Description:
    33. en: The RAM role to be assumed by OOS.
    34. zh-cn: OOS扮演的RAM角色。
    35. Type: String
    36. Default: OOSServiceRole
    37. RamRole: '{{ OOSAssumeRole }}'
    38. Tasks:
    39. - Name: getInstance
    40. Description:
    41. en: Views the ECS instances.
    42. zh-cn: 获取ECS实例。
    43. Action: 'ACS::SelectTargets'
    44. Properties:
    45. ResourceType: 'ALIYUN::ECS::Instance'
    46. Filters:
    47. - '{{ targets }}'
    48. Outputs:
    49. instanceIds:
    50. Type: List
    51. ValueSelector: 'Instances.Instance[].InstanceId'
    52. - Name: deleteInstance
    53. Action: 'ACS::ExecuteAPI'
    54. Description:
    55. en: Deletes ECS instance with the specified instance ID.
    56. zh-cn: 通过指定实例ID删除实例。
    57. Properties:
    58. Service: ECS
    59. API: DeleteInstance
    60. Parameters:
    61. InstanceId: '{{ ACS::TaskLoopItem }}'
    62. Force: '{{ force }}'
    63. Loop:
    64. RateControl: '{{ rateControl }}'
    65. Items: '{{ getInstance.instanceIds }}'

该模板顺序执行以下任务:

  1. 获取目标实例或实例上的Tags。
  2. 批量删除实例
  • 批量删除预付费实例(ACS-ECS-BulkyDeletePrepaidInstances
  1. FormatVersion: OOS-2019-06-01
  2. Description:
  3. en: >-
  4. Bulky delete prepaid instances.The specified ECS instances must be in
  5. stopped status.
  6. zh-cn: 批量删除ECS预付费实例。指定的ECS实例必须处于已停止状态。
  7. name-en: ACS-ECS-BulkyDeletePrepaidInstances
  8. name-zh-cn: 批量删除ECS预付费实例
  9. categories:
  10. - instance_manage
  11. Parameters:
  12. targets:
  13. Type: Json
  14. AssociationProperty: Targets
  15. AssociationPropertyMetadata:
  16. ResourceType: 'ALIYUN::ECS::Instance'
  17. rateControl:
  18. Description:
  19. en: Concurrency ratio of task execution.
  20. zh-cn: 任务执行的并发比率。
  21. Type: Json
  22. AssociationProperty: RateControl
  23. Default:
  24. Mode: Concurrency
  25. MaxErrors: 0
  26. Concurrency: 10
  27. OOSAssumeRole:
  28. Description:
  29. en: The RAM role to be assumed by OOS.
  30. zh-cn: OOS扮演的RAM角色。
  31. Type: String
  32. Default: OOSServiceRole
  33. RamRole: '{{ OOSAssumeRole }}'
  34. Tasks:
  35. - Name: getInstance
  36. Description:
  37. en: Views the ECS instances.
  38. zh-cn: 获取ECS实例。
  39. Action: 'ACS::SelectTargets'
  40. Properties:
  41. ResourceType: 'ALIYUN::ECS::Instance'
  42. Filters:
  43. - '{{ targets }}'
  44. Outputs:
  45. instanceIds:
  46. Type: List
  47. ValueSelector: 'Instances.Instance[].InstanceId'
  48. - Name: modifyInstanceChargeType
  49. Action: 'ACS::ExecuteAPI'
  50. Description:
  51. en: Modify the charge type for prepaid instances to postpaid.
  52. zh-cn: 修改预付费实例付费方式为按量付费。
  53. Properties:
  54. Service: ECS
  55. API: ModifyInstanceChargeType
  56. Parameters:
  57. InstanceIds: '{{ getInstance.instanceIds }}'
  58. InstanceChargeType: PostPaid
  59. - Name: deleteInstance
  60. Action: 'ACS::ECS::DeleteInstance'
  61. Description:
  62. en: Deletes the ECS instance by instance ID.
  63. zh-cn: 通过实例ID删除实例。
  64. Properties:
  65. instanceId: '{{ ACS::TaskLoopItem }}'
  66. Loop:
  67. RateControl: '{{ rateControl }}'
  68. Items: '{{ getInstance.instanceIds }}'

该模板顺序执行以下任务:

  1. 获取目标实例或实例上的Tags。
  2. 将预付费实例修改为按量付费实例
  3. 批量删除实例