调用DetachInstances从一个伸缩组移出一台或多台ECS实例。

接口说明

移出ECS实例之后,ECS实例可以独立于伸缩组存在,您可以调用AttachInstances接口将ECS实例附加到其他伸缩组。

移出一台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:ECS实例移出伸缩组后,期望实例数也减少相应台数。
  • false:ECS实例移出伸缩组后,期望实例数不会变化。

默认值:true。

DetachOption String both

指定是否停止使用ECS实例作为负载均衡实例的后端服务器(即将ECS实例移出负载均衡实例的默认服务器组和虚拟服务器组),以及是否将ECS实例移出RDS实例的访问白名单,取值范围:

  • both:将ECS实例移出负载均衡实例的默认服务器组和虚拟服务器组,并将ECS实例移出RDS实例的访问白名单。

返回数据

名称 类型 示例值 描述
RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E

请求ID。

ScalingActivityId String asa-bp1gbswjhjrw8tko****

伸缩活动的ID。

示例

请求示例

http://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实例不存在。