執行伸縮規則可以實現手動或自動調整ECS實例或ECI實例資源。其中,對于簡單規則和步進規則,您才可以調用API ExecuteScalingRule執行一條伸縮規則,而對于目標追蹤規則和預測規則,彈性伸縮會自動執行伸縮規則。
接口說明
調用該接口需注意以下幾點:
- 調用該接口前,請確保滿足以下條件:
- 伸縮組處于
Active
狀態。 - 伸縮組沒有執行中的伸縮活動。
- 伸縮組處于
- 當伸縮組沒有執行中的伸縮活動時,該接口可以繞過冷卻時間(Cooldown)直接執行伸縮活動。
- 如果伸縮規則需要增加的ECS實例數加上當前伸縮組的實例數(Total Capacity)大于最大實例數(MaxSize),則按Total Capacity=MaxSize執行伸縮活動。
- 如果當前伸縮組的實例數(Total Capacity)減去伸縮規則需要減少的ECS實例數小于最小實例數(MinSize),則按Total Capacity=MinSize執行伸縮活動。
調用該接口返回成功,只是表示彈性伸縮服務接受了該接口的調用請求,可以執行伸縮活動,但不代表伸縮活動能夠執行成功。您需要通過返回的ScalingActivityId
查看該伸縮活動的執行狀態。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
請求參數
名稱 |
類型 |
是否必選 |
示例值 |
描述 |
Action | String | 是 | ExecuteScalingRule | 系統規定參數。取值:ExecuteScalingRule。 |
ScalingRuleAri | String | 是 | ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7**** | 伸縮規則唯一標識符。 說明 調用API執行伸縮規則時,只支持執行簡單規則和步進規則,且執行步進規則時必須同時指定 BreachThreshold 和MetricValue 參數。 |
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. |
閾值超過了可選范圍。 |