如果由于库存不足等原因导致可用区之间ECS实例的数量不均衡,您可以通过调用API RebalanceInstances重新平衡多可用区伸缩组内ECS实例的分布。
接口说明
再平衡分布会通过新建ECS实例替换已有ECS实例补偿平衡可用区,终止已有ECS实例前会先启动新ECS实例,再平衡分布不会影响您的应用程序性能或可用性。
- 只支持设置了
MultiAZPolicy
为BALANCE
的多可用区伸缩组,用于平衡多可用区间ECS实例的分布。 - 只有伸缩组内实例分布严重不平衡时可以执行再平衡操作,才需要执行一次再平衡分布操作,且一次再平衡分布活动最多可以替换20台ECS实例。
-
再平衡分布活动期间,如果组内实例数量接近或达到指定的最大ECS实例台数(MaxSize),但需要继续平衡ECS实例分布,弹性伸缩允许ECS实例数量暂时超出MaxSize的10%。该超出状态会持续一段时间,直至完成平衡ECS实例分布,通常为1分钟至6分钟。
说明 如果伸缩组的最大实例数的10%不是整数,则小数部分取整允许超出1台。例如,伸缩组最大实例数为15,取10%为1.5台,则暂时允许超出2台。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | RebalanceInstances | 系统规定参数。取值:RebalanceInstances。 |
ScalingGroupId | String | 是 | asg-bp18p2yfxow2dloq**** | 伸缩组的ID。 |
RegionId | String | 否 | cn-hangzhou | 伸缩组所属的地域ID。 |
返回数据
名称 |
类型 |
示例值 |
描述 |
ScalingActivityId | String | asa-kjgffgdfadah**** | 伸缩活动的ID。 |
RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | 请求ID。 |
示例
请求示例
http(s)://ess.aliyuncs.com/?Action=RebalanceInstances
&ScalingGroupId=asg-bp18p2yfxow2dloq****
&RegionId=cn-hangzhou
&公共请求参数
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<RebalanceInstancesResponse>
<ScalingActivityId>asa-kjgffgdfadah****</ScalingActivityId>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
</RebalanceInstancesResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"ScalingActivityId" : "asa-kjgffgdfadah****",
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
错误码
访问错误中心查看更多错误码。
HttpCode |
错误码 |
错误信息 |
描述 |
400 |
IncorrectScalingGroupStatus |
The current status of the specified scaling group does not support this action. |
您需要启用伸缩组。 |
400 |
OperationDenied |
This operation is denied because the specified scaling group does not support this action. |
指定伸缩组的扩缩容策略 MultiAZPolicy 不是 BALANCE ,或者ECS实例分布不存在严重不平衡的情况。 |
403 |
Forbidden.Unauthorized |
A required authorization for the specified action is not supplied. |
您还未被授权使用RebalanceInstances接口。 |
404 |
InvalidScalingGroupId.NotFound |
The specified scaling group does not exist. |
指定的伸缩组在该用户账号下不存在。 |