執行伸縮規則可以實現手動或自動調整ECS執行個體或ECI執行個體資源。其中,對於簡單規則和步進規則,您才可以調用API ExecuteScalingRule執行一條伸縮規則,而對於目標追蹤規則和預測規則,Auto Scaling會自動執行伸縮規則。
介面說明
調用該介面需注意以下幾點:
- 調用該介面前,請確保滿足以下條件:
- 伸縮組處於
Active狀態。 - 伸縮組沒有執行中的伸縮活動。
- 伸縮組處於
- 當伸縮組沒有執行中的伸縮活動時,該介面可以繞過冷卻時間(Cooldown)直接執行伸縮活動。
- 如果伸縮規則需要增加的ECS執行個體數加上當前伸縮組的執行個體數(Total Capacity)大於最大執行個體數(MaxSize),則按Total Capacity=MaxSize執行伸縮活動。
- 如果當前伸縮組的執行個體數(Total Capacity)減去伸縮規則需要減少的ECS執行個體數小於最小執行個體數(MinSize),則按Total Capacity=MinSize執行伸縮活動。
調用該介面返回成功,只是表示Auto Scaling服務接受了該介面的調用請求,可以執行伸縮活動,但不代表伸縮活動能夠執行成功。您需要通過返回的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. |
您並未向Auto Scaling完整授權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. |
指定伸縮規則所屬的伸縮組的Server Load Balancer執行個體未處於active狀態。 |
400 |
IncorrectLoadBalancerHealthCheck |
The current health check type of specified load balancer does not support this action. |
指定伸縮規則所屬的伸縮組的Server Load Balancer執行個體未開啟健全狀態檢查。 |
400 |
InvalidLoadBalancerId.IncorrectInstanceNetworkType |
The network type of the instance in specified load balancer does not support this action. |
指定的Server Load Balancer執行個體含有的ECS執行個體的網路類型與伸縮組的網路類型不符。 |
400 |
InvalidLoadBalancerId.VPCMismatch |
The specified virtual switch and the instance in specified load balancer are not in the same VPC. |
指定的伸縮組的Server Load Balancer執行個體含有的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. |
Auto Scaling的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. |
閾值超過了可選範圍。 |