全部产品
Search
文档中心

弹性伸缩:ExecuteScalingRule

更新时间:May 21, 2024

执行伸缩规则可以实现手动或自动调整ECS实例或ECI实例资源。其中,对于简单规则和步进规则,您才可以调用API ExecuteScalingRule执行一条伸缩规则,而对于目标追踪规则和预测规则,弹性伸缩会自动执行伸缩规则。

接口说明

调用该接口需注意以下几点:

  • 调用该接口前,请确保满足以下条件:
    • 伸缩组处于Active状态。
    • 伸缩组没有执行中的伸缩活动。
  • 当伸缩组没有执行中的伸缩活动时,该接口可以绕过冷却时间(Cooldown)直接执行伸缩活动。
  • 如果伸缩规则需要增加的ECS实例数加上当前伸缩组的实例数(Total Capacity)大于最大实例数(MaxSize),则按Total Capacity=MaxSize执行伸缩活动。
  • 如果当前伸缩组的实例数(Total Capacity)减去伸缩规则需要减少的ECS实例数小于最小实例数(MinSize),则按Total Capacity=MinSize执行伸缩活动。

调用该接口返回成功,只是表示弹性伸缩服务接受了该接口的调用请求,可以执行伸缩活动,但不代表伸缩活动能够执行成功。您需要通过返回的ScalingActivityId查看该伸缩活动的执行状态。

说明 单次调整的ECS实例台数存在限制,请参见CreateScalingRule中的AdjustmentValue参数说明。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String ExecuteScalingRule

系统规定参数。取值:ExecuteScalingRule

ScalingRuleAri String ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****

伸缩规则唯一标识符。

说明 调用API执行伸缩规则时,只支持执行简单规则和步进规则,且执行步进规则时必须同时指定BreachThresholdMetricValue参数。
ClientToken String 123e4567-e89b-12d3-a456-426655440000

用于保证请求的幂等性。

由客户端生成该参数值,要保证在不同请求间唯一,最大不超过64个ASCII字符。更多信息,请参见如何保证幂等性

BreachThreshold Float 1.0

执行步进伸缩规则时指定的当前阈值,取值范围:-9.999999E18~9.999999E18。

MetricValue Float 1.0

执行步进伸缩规则时指定的当前指标值,取值范围:-9.999999E18~9.999999E18。

RegionId String cn-qingdao

伸缩规则所属地域ID。

返回数据

名称

类型

示例值

描述

ScalingActivityId String asa-bp13o672yeautiil****

伸缩活动的id。

RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3****

请求ID。

示例

请求示例

http(s)://ess.aliyuncs.com/?Action=ExecuteScalingRule
&ScalingRuleAri=ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****
&ClientToken=123e4567-e89b-12d3-a456-426655440000
&BreachThreshold=1.0
&MetricValue=1.0
&RegionId=cn-qingdao
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<ExecuteScalingRuleResponse>
    <ScalingActivityId>asa-bp13o672yeautiil****</ScalingActivityId>
    <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
</ExecuteScalingRuleResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "ScalingActivityId" : "asa-bp13o672yeautiil****",
  "RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}

错误码

访问错误中心查看更多错误码。

HttpCode

错误码

错误信息

描述

404

InvalidScalingRuleAri.NotFound

The specified scaling rule Ari does not exist.

指定的伸缩规则在该账号下不存在。

403

Forbidden.Unauthorized

A required authorization for the specified action is not supplied.

您并未向弹性伸缩完整授权OpenAPI接口。

400

IncorrectScalingGroupStatus

The current status of the specified scaling group does not support this action.

指定伸缩规则所属的伸缩组未处于Active状态。

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

InsufficientBalance

Your account does not have enough balance.

账号余额不足。

400

QuotaExceed.Instance

Living instance quota exceeded.

ECS实例个数达到上限。

400

IncorrectLoadBalancerStatus

The current status of the specified load balancer does not support this action.

指定伸缩规则所属的伸缩组的负载均衡实例未处于active状态。

400

IncorrectLoadBalancerHealthCheck

The current health check type of specified load balancer does not support this action.

指定伸缩规则所属的伸缩组的负载均衡实例未开启健康检查。

400

InvalidLoadBalancerId.IncorrectInstanceNetworkType

The network type of the instance in specified load balancer does not support this action.

指定的负载均衡实例含有的ECS实例的网络类型与伸缩组的网络类型不匹配。

400

InvalidLoadBalancerId.VPCMismatch

The specified virtual switch and the instance in specified load balancer are not in the same VPC.

指定的伸缩组的负载均衡实例含有的ECS实例与VSwitchId不在同一个VPC当中。

400

IncorrectDBInstanceStatus

The current status of DB instance "XXX" does not support this action.

指定伸缩规则所属的伸缩组的RDS实例未处于running状态。

400

QuotaExceeded.DBInstanceSecurityIP

Security IP quota exceeded in DB instance "XXX".

指定伸缩规则所属的伸缩组的RDS实例访问白名单的IP个数达到上限。

400

QuotaExceeded.SecurityGroupInstance

Instance quota exceeded in the specified security group.

指定的安全组已添加的ECS实例个数达到上限。

400

IncorrectCapacity.NoChange

To execute the specified scaling rule, the total capacity will not change.

伸缩规则未造成伸缩组实例数的变化。

400

QuotaExceeded.ScalingInstance

Scaling instance quota exceeded.

弹性伸缩的ECS实例使用个数达到上限。

400

QuotaExceeded.AfterpayInstance

Living afterpay instance quota exceeded.

按量付费ECS实例的使用个数达到上限。

400

ResourceNotAvailable.ECS

The specified region or zone does not offer the specified disk or instance category.

指定的区域无法创建指定的ECS实例类型或磁盘类型。

400

ScalingRule.InvalidScalingRuleType

Specific scaling rule type: %s can not be executed.

无法执行当前类型的伸缩规则。

400

InvalidStepAdjustments.NoStepFound

No adjustment step found for a metric value of: %s.

未找到符合条件的分步执行步骤。

400

MissingParameter.MetricValue

Metric value must be specified for StepScalingRule.

执行分步伸缩规则必须指定指标值。

400

MissingParameter.BreachThreshold

Breach threshold must be specified for StepScalingRule.

执行分步伸缩规则必须指定阈值。

400

MetricValueBeyondPermitRange

Specific parameter "%s" beyond permit range.

指标值超过了可选范围。

400

BreachThresholdBeyondPermitRange

Specific parameter "%s" beyond permit range.

阈值超过了可选范围。