调用DetachInstances从一个伸缩组移出一台或多台ECS实例。
接口说明
移出ECS实例之后,ECS实例可以独立于伸缩组存在,您可以调用AttachInstances接口将ECS实例附加到其他伸缩组。
调用该接口移出一台ECS实例并不会停止或释放该ECS实例。
调用该接口前,请确保满足以下条件:
- 目标伸缩组必须处于启用(Enable)状态。
- 目标伸缩组没有正在进行的伸缩活动。
目标伸缩组没有正在进行的伸缩活动时,该接口可以绕过冷却时间直接触发伸缩活动。
接口成功调用后,仅表示弹性伸缩服务接受了该接口调用的请求。可以正常触发伸缩活动,但不能保证伸缩活动执行成功,您需要通过返回的ScalingActivityId查看伸缩活动的状态。
目标伸缩组的ECS数量减去当前移出的ECS数不能小于伸缩组最小实例数(MinSize),否则会报错。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
| 名称 | 类型 | 是否必选 | 示例值 | 描述 | 
|---|---|---|---|---|
| Action | String | 是 | DetachInstances | 系统规定参数。取值: DetachInstances | 
| InstanceId.N | RepeatList | 是 | i-bp109k5j3dum1ce6**** | 待移出ECS实例的ID。N的取值范围:1~20。 | 
| ScalingGroupId | String | 是 | asg-bp1igpak5ft1flyp**** | 伸缩组的ID。 | 
| DecreaseDesiredCapacity | Boolean | 否 | true | 是否修改期望实例数。取值范围: 
 默认值:true | 
| DetachOption | String | 否 | both | 指定是否停止使用ECS实例作为负载均衡实例的后端服务器(即将ECS实例移出负载均衡实例的默认服务器组和虚拟服务器组),以及是否将ECS实例移出RDS实例的访问白名单。取值范围: 
 | 
返回数据
| 名称 | 类型 | 示例值 | 描述 | 
|---|---|---|---|
| RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E | 请求ID。 | 
| ScalingActivityId | String | asa-bp1gbswjhjrw8tko**** | 伸缩活动的ID。 | 
示例
请求示例
https://ess.aliyuncs.com/?Action=DetachInstances &ScalingGroupId=asg-bp1igpak5ft1flyp**** &InstanceId.1=i-bp109k5j3dum1ce6**** &<公共请求参数>
正常返回示例
XML 格式 
<DetachInstancesResponse>
      <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>
      <ScalingActivityId>asa-bp1gbswjhjrw8tko****</ScalingActivityId>
</DetachInstancesResponse> 
     JSON 格式 
{
    "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E",
    "ScalingActivityId": "asa-bp1gbswjhjrw8tko****"
} 
    错误码
访问错误中心查看更多错误码。
| HttpCode | 错误码 | 错误信息 | 描述 | 
|---|---|---|---|
| 400 | IncorrectScalingGroupStatus | The current status of the specified scaling group does not support this action. | 目标伸缩组必须处于启用(Enable)状态。 | 
| 400 | ScalingActivityInProgress | You cannot delete a scaling group or launch a new scaling activity while there is a scaling activity in progress for the specified scaling group. | 目标伸缩组不能有正在进行的伸缩活动。 | 
| 400 | IncorrectLoadBalancerStatus | The current status of the specified load balancer does not support this action. | 目标伸缩组内的负载均衡实例必须处于运行中(active)状态。 | 
| 400 | IncorrectDBInstanceStatus | The current status of DB instance “XXX” does not support this action. | 目标伸缩组内的 RDS 实例必须处于运行中(Running)状态。 | 
| 400 | IncorrectCapacity.MinSize | To remove the instances, the total capacity will be lesser than the MinSize. | 目标伸缩组的ECS实例数量减去当前移出的ECS实例数量不能小于伸缩组最少实例数(MinSize)。 | 
| 403 | Forbidden.Unauthorized | A required authorization for the specified action is not supplied. | 您暂未被授权使用DetachInstances接口。 | 
| 404 | InvalidScalingGroupId.NotFound | The specified scaling group does not exist. | 指定的伸缩组不存在。 | 
| 404 | InvalidInstanceId.NotFound | Instance “XXX” does not exist. | 指定的ECS实例不存在。 |