
# 批量操作实例
#### 功能介绍
- 批量移出伸缩组中的实例或批量添加伸缩组外的实例。
  ![](https://support.huaweicloud.com/api-as/public_sys-resources/note_3.0-zh-cn.png)
  批量移出伸缩组时，如果是手动添加到伸缩组的实例，只能从伸缩组中移出，不支持移出并删除。
  
- 批量对伸缩组中的实例设置或取消其实例保护属性。
- 批量将伸缩组中的实例转入或移出备用状态。
![](https://support.huaweicloud.com/api-as/public_sys-resources/note_3.0-zh-cn.png)
- 单次最多批量移出实例个数为50，其他批量操作单次最多操作实例个数为10。批量添加后实例数不能大于伸缩组的最大实例数，批量移出后实例数不能小于伸缩组的最小实例数。
- 当伸缩组处于INSERVICE状态且没有伸缩活动时，才能添加实例。
- 当伸缩组没有伸缩活动时，才能移出实例。
- 向伸缩组中添加实例时，必须保证实例所在的可用区包含于伸缩组的可用区内。
- 实例处于INSERVICE状态时才可以进行移出、设置或取消实例保护属性等操作。
- 当伸缩组发生自动缩容活动时，设置了实例保护的实例不会被移出伸缩组。
- 批量移出弹性伸缩组中的实例时，若该实例加入伸缩组时绑定的监听器和伸缩组本身的监听器相同，会解绑定实例和监听器。若该实例加入伸缩组时绑定的监听器和伸缩组本身的监听器不同，会保留实例和监听器的绑定关系。
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/AS/doc?api=BatchAddScalingInstances)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-as/as_07_0200.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                          | 访问级别  | 资源类型（\*为必须）    | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                            | 别名                       | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | as:scalingGroup:batchAddInstances            | write | scalingGroup\* | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)                 | as:instances:batchAction | -      |
  | as:scalingGroup:batchRemoveInstances         | write | scalingGroup\* | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)          | as:instances:batchAction | -      |
  | as:scalingGroup:batchSetInstancesProtect     | write | scalingGroup\* | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)          | as:instances:batchAction | -      |
  | as:scalingGroup:batchSetInstancesUnprotect   | write | scalingGroup\* | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)             | as:instances:batchAction | -      |
  | as:scalingGroup:batchSetInstancesStandby     | write | scalingGroup\* | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)   | as:instances:batchAction | -      |
  | as:scalingGroup:batchSetInstancesExitStandby | write | scalingGroup\* | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)              | as:instances:batchAction | -      |
     
  
 
#### URI
POST /autoscaling-api/v1/{project_id}/scaling_group_instance/{scaling_group_id}/action
表1参数说明 
| 参数               | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id       | 是    | String | 项目ID  |
| scaling_group_id | 是    | String | 伸缩组ID |
   
#### 请求参数
表2请求参数 
| 参数              | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| instances_id    | 是    | Array of strings | 云服务器ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| instance_delete | 否    | String           | 从伸缩组中移出实例时，是否删除云服务器。 取值如下： - no：不删除实例，默认情况为no。  - yes：删除实例。 如果是手动添加到伸缩组的实例，只能从伸缩组中移出，不支持移出并删除。    只有action为REMOVE时，这个字段才生效。                                                                                                                                                                     |
| instance_append | 否    | String           | 将实例移入备用状态时，是否补充新的云服务器。 取值如下： - no：不补充新的实例，默认情况为no。  - yes：补充新的实例。   只有action为ENTER_STANDBY时，这个字段才生效。                                                                                                                                                                                                                                               |
| action          | 是    | String           | 批量操作实例action标识： - 添加：ADD  - 移除：REMOVE  - 设置实例保护：PROTECT  - 取消实例保护：UNPROTECT  - 转入备用状态：ENTER_STANDBY  - 移出备用状态：EXIT_STANDBY   |
   
#### 请求示例
- 批量添加实例ID为instance_id_1和instance_id_2的两个实例到ID为e5d27f5c-dd76-4a61-b4bc-a67c5686719a的伸缩组中。
  ```
  POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/action
  {
      "action": "ADD",
      "instances_id": [
          "instance_id_1",
          "instance_id_2"
      ]
  }
  ```
  
- 批量移出并删除ID为e5d27f5c-dd76-4a61-b4bc-a67c5686719a的伸缩组中，实例ID为instance_id_1和instance_id_2的两个实例。
  ```
  POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/action
  {
      "action": "REMOVE",
      "instances_id": [
          "instance_id_1",
          "instance_id_2"
      ],
      "instance_delete": "yes"
  }
  ```
  
- 批量对ID为instance_id_1和instance_id_2的两个实例设置实例保护属性。
  ```
  POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/action
  {
      "action": "PROTECT",
      "instances_id": [
          "instance_id_1",
          "instance_id_2"
      ]
  }
  ```
  
- 批量对ID为instance_id_1和instance_id_2的两个实例取消实例保护属性。
  ```
  POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/action
  {
      "action": "UNPROTECT",
      "instances_id": [
          "instance_id_1",
          "instance_id_2"
      ]
  }
  ```
  
- 批量将ID为instance_id_1和instance_id_2的两个实例转入实例备用状态。
  ```
  POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/action
  {
      "action": "ENTER_STANDBY",
      "instances_id": [
          "instance_id_1",
          "instance_id_2"
      ],
      "instance_append": "yes"
  }
  ```
  
- 批量将ID为instance_id_1和instance_id_2的两个实例移出实例备用状态。
  ```
  POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/action
  {
      "action": "EXIT_STANDBY",
      "instances_id": [
          "instance_id_1",
          "instance_id_2"
      ]
  }
  ```
  
 
#### 响应参数
无
#### 响应示例
无
#### 返回值
- 正常 204
  
- 异常
  
  | 返回值                               | 说明                           |
  |:---|:---|
  | 400 Bad Request                   | 服务器未能处理请求。                   |
  | 401 Unauthorized                  | 被请求的页面需要用户名和密码。              |
  | 403 Forbidden                     | 对被请求的页面访问禁止。                 |
  | 404 Not Found                     | 服务器无法找到被请求的页面。               |
  | 405 Method Not Allowed            | 请求中指定的方法不被允许。                |
  | 406 Not Acceptable                | 服务器生成的响应无法被客户端所接受。           |
  | 407 Proxy Authentication Required | 用户必须首先使用代理服务器进行验证，这样请求才会被处理。 |
  | 408 Request Timeout               | 请求超出了服务器的等待时间。               |
  | 409 Conflict                      | 由于冲突，请求无法被完成。                |
  | 500 Internal Server Error         | 请求未完成。服务异常。                  |
  | 501 Not Implemented               | 请求未完成。服务器不支持所请求的功能。          |
  | 502 Bad Gateway                   | 请求未完成。服务器从上游服务器收到一个无效的响应。    |
  | 503 Service Unavailable           | 请求未完成。系统暂时异常。                |
  | 504 Gateway Timeout               | 网关超时。                        |
     
  
 
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-as/as_07_0102.html)。
