伸縮規則的作用由伸縮規則的類型來決定,可用於觸發伸縮活動或者智能設定伸縮組邊界值。您可以根據實際業務需求,調用API CreateScalingRule建立不同類型的伸縮規則,例如,您的業務需求僅需要設定伸縮組邊界值,建議您選擇預測規則類型。
介面說明
請注意以下參數相關說明:
- 當AdjustmentType是TotalCapacity時,表示將當前伸縮組的ECS或ECI執行個體數量調整到指定數量,對應的AdjustmentValue值必須大於等於0。
- 當AdjustmentType是QuantityChangeInCapacity或PercentChangeInCapacity,對應的AdjustmentValue值為正數表示增加執行個體、為負數表示減少執行個體。
- 當AdjustmentType是PercentChangeInCapacity,Auto Scaling服務以伸縮組當前執行個體數(Total Capacity)xAdjusmentValue/100,並使用四捨五入原則來確認增加或減少的ECS執行個體或ECI執行個體個數。
- 當伸縮規則指定了冷卻時間(Cooldown),則執行該伸縮規則的伸縮活動完成後,會以伸縮規則中指定的冷卻時間對伸縮組進行冷卻處理,如果伸縮規則未指定冷卻時間,則以伸縮組指定的冷卻時間(DefaultCooldown)為準。
- 一個伸縮組內可以建立的伸縮規則數量有限,具體說明請參見使用限制。
- 返回的伸縮規則唯一識別碼(ScalingRuleAri)可以供以下介面使用:
- 在執行伸縮規則(ExecuteScalingRule)的ScalingRuleAri參數中指定,您可以手動執行該伸縮規則。
- 在建立定時任務(CreateScheduledTask)的ScheduledAction參數中指定,使用者可以定時執行該伸縮規則。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
請求參數
|
名稱 |
類型 |
是否必選 |
樣本值 |
描述 |
| Action | String | 是 | CreateScalingRule | 系統規定參數。取值:CreateScalingRule。 |
| ScalingGroupId | String | 是 | asg-bp1ffogfdauy0jw0**** | 伸縮規則所屬伸縮組的ID。 |
| ScalingRuleName | String | 否 | scalingrule**** | 伸縮規則的名稱.。由2~64個字元組成,以數字、大小字母或中文開頭,可包含數字、底線(_)、短劃線(-)或半形句號(.)。 同一使用者帳號同一地區同一伸縮組內伸縮規則唯一。 說明 如果沒有指定該參數,預設值為ScalingRuleId的值。 |
| Cooldown | Integer | 否 | 60 | 伸縮規則的冷卻時間,僅適用於簡單規則。取值範圍:0~86400,單位:秒。 預設值:空。 |
| MinAdjustmentMagnitude | Integer | 否 | 1 | 伸縮規則最小調整執行個體數。僅當伸縮規則類型為 |
| AdjustmentType | String | 否 | QuantityChangeInCapacity | 伸縮規則的調整方式,適用於簡單規則和步進規則,且此時該項必選。取值範圍:
|
| AdjustmentValue | Integer | 否 | 100 | 伸縮規則的調整值,適用於簡單規則和步進規則,且此時該項必選。任何情況下,單次調整的ECS執行個體台數都不能超過1000。不同調整方式對應的取值範圍:
|
| ScalingRuleType | String | 否 | SimpleScalingRule | 伸縮規則類型。取值範圍:
預設值:SimpleScalingRule。 |
| EstimatedInstanceWarmup | Integer | 否 | 300 | 執行個體預熱時間,適用於目標追蹤規則和步進規則。處於預熱狀態的ECS執行個體將正常的加入伸縮組,但是期間將不會向CloudMonitor上報監控資料。 說明 動態計算需要擴縮容的ECS執行個體數量時,處於預熱狀態的執行個體不計入現有執行個體數量。 取值範圍:0~86400,單位:秒。 預設值:300。 |
| MetricName | String | 否 | CpuUtilization | 預定義監控項,適用於目標追蹤規則和預測規則,且此時該項必選。 目標追蹤規則取值範圍:
預測規則取值範圍:
更多資訊,請參見系統監控警示任務。 |
| TargetValue | Float | 否 | 0.125 | 目標值,適用於目標追蹤規則和預測規則,且此時該項必選。TargetValue最多保留小數點後三位,且必須大於0。 |
| DisableScaleIn | Boolean | 否 | false | 是否禁用縮容,僅適用於目標追蹤規則。 預設值:false。 |
| ScaleInEvaluationCount | Integer | 否 | 15 | 建立目標追蹤規則後,會自動建立警示任務。本參數用於指定對應的縮容警示任務觸發警示時,所需連續滿足閾值條件的次數。 預設值:15。 |
| ScaleOutEvaluationCount | Integer | 否 | 3 | 建立目標追蹤規則後,會自動建立警示任務。本參數用於指定對應的擴容警示任務觸發警示時,所需連續滿足閾值條件的次數。 預設值:3。 |
| PredictiveScalingMode | String | 否 | PredictAndScale | 預測規則的模式,取值範圍:
預設值:PredictAndScale。 |
| PredictiveValueBehavior | String | 否 | MaxOverridePredictiveValue | 預測規則最大值處理方式,取值範圍:
預設值:MaxOverridePredictiveValue。 |
| PredictiveValueBuffer | Integer | 否 | 50 |
預設值:0。 |
| PredictiveTaskBufferTime | Integer | 否 | 30 | 預測規則自動建立的預測任務預設均在整點執行,您可以設定開機前時間提前執行預測任務,預先準備資源。取值範圍:0~60,單位:分鐘。 預設值:0。 |
| InitialMaxSize | Integer | 否 | 100 | 伸縮組執行個體數上限,和PredictiveValueBehavior結合使用。 預設值為伸縮組最大執行個體數(MaxSize的值)。 |
| StepAdjustment.N.MetricIntervalUpperBound | Float | 否 | 5.0 | 分步步驟的上邊界,僅適用於步進規則,取值範圍:-9.999999E18~9.999999E18。 |
| StepAdjustment.N.ScalingAdjustment | Integer | 否 | 1 | 分步步驟對應的執行個體擴充數量,僅適用於步進規則。 |
| StepAdjustment.N.MetricIntervalLowerBound | Float | 否 | 1.0 | 分步步驟的下邊界,僅適用於步進規則,取值範圍:-9.999999E18~9.999999E18。 |
| RegionId | String | 否 | cn-hangzhou | 伸縮組所屬的地區ID。 |
| AlarmDimension.N.DimensionKey | String | 否 | rulePool | 監控項關聯的維度資訊鍵。 |
| AlarmDimension.N.DimensionValue | String | 否 | sgp-l1cbirz451yxu2**** | 監控項關聯的維度資訊值。 |
返回資料
名稱 |
類型 |
樣本值 |
描述 |
| ScalingRuleAri | String | ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7**** | 伸縮規則的唯一識別碼。 |
| RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | 請求ID。 |
| ScalingRuleId | String | asr-bp1dvirgwkoowxk7**** | 伸縮規則的ID,由系統產生,全域唯一。 |
樣本
請求樣本
http(s)://ess.aliyuncs.com/?Action=CreateScalingRule
&ScalingGroupId=asg-bp1ffogfdauy0jw0****
&ScalingRuleName=scalingrule****
&Cooldown=60
&MinAdjustmentMagnitude=1
&AdjustmentType=QuantityChangeInCapacity
&AdjustmentValue=100
&ScalingRuleType=SimpleScalingRule
&EstimatedInstanceWarmup=300
&MetricName=CpuUtilization
&TargetValue=0.125
&DisableScaleIn=false
&ScaleInEvaluationCount=15
&ScaleOutEvaluationCount=3
&PredictiveScalingMode=PredictAndScale
&PredictiveValueBehavior=MaxOverridePredictiveValue
&PredictiveValueBuffer=50
&PredictiveTaskBufferTime=30
&InitialMaxSize=100
&StepAdjustment=[{"MetricIntervalUpperBound":5.0,"ScalingAdjustment":1,"MetricIntervalLowerBound":1.0}]
&RegionId=cn-hangzhou
&AlarmDimension=[{"DimensionKey":"rulePool","DimensionValue":"sgp-l1cbirz451yxu2****"}]
&公用請求參數
正常返回樣本
XML格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateScalingRuleResponse>
<ScalingRuleAri>ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****</ScalingRuleAri>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
<ScalingRuleId>asr-bp1dvirgwkoowxk7****</ScalingRuleId>
</CreateScalingRuleResponse>
JSON格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"ScalingRuleAri" : "ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****",
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"ScalingRuleId" : "asr-bp1dvirgwkoowxk7****"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
HttpCode |
錯誤碼 |
錯誤資訊 |
描述 |
404 |
InvalidScalingGroupId.NotFound |
The specified scaling group does not exist. |
指定的伸縮組在該使用者帳號下不存在。 |
400 |
InvalidScalingRuleName.Duplicate |
The specified value of parameter <parameter name> is duplicated. |
伸縮規則名字已存在。 |
400 |
QuotaExceeded.ScalingRule |
Scaling rule quota exceeded in the specified scaling group. |
使用者的伸縮規則使用個數達到上限。 |
400 |
TargetTrackingScalingRule.UnsupportedMetric |
Specific metric is not supported for target tracking scaling rule. |
目標追蹤規則不支援當前監控指標。 |
400 |
TargetTrackingScalingRule.DumplicateMetric |
Only one TargetTrackingScaling rule for a given metric specification is allowed. |
一個伸縮組中,同一監控指標只能存在一條目標追蹤規則。 |
400 |
InvalidMinAdjustmentMagnitudeMismatchAdjustmentType |
MinAdjustmentMagnitude is not supported by the specified adjustment type. |
MinAdjustmentMagnitude不支援當前伸縮規則調整類型。 |
400 |
InvalidStepAdjustments.MultipleNullUpperBound |
At most one StepAdjustment may have an unspecified upper bound. |
最多隻能有一個分步步驟不指定分步上界。 |
400 |
InvalidStepAdjustments.MultipleNullLowerBound |
At most one StepAdjustment may have an unspecified lower bound. |
最多隻能有一個分步步驟不指定分步下界。 |
400 |
InvalidStepAdjustments.NoNullLowerBound |
There must be a StepAdjustment with an unspecified lower bound when one StepAdjustment has a negative lower bound. |
當存在一個分步下界為負數時,則必須有一個未指定分步下界的分步步驟。 |
400 |
InvalidStepAdjustments.NoNullUpperBound |
There must be a StepAdjustment with an unspecified upper bound when one StepAdjustment has a positive upper bound. |
當存在一個正數的分步上界時,則必有一個未指定分步上界的分步步驟。 |
400 |
InvalidStepAdjustments.Gap |
StepAdjustment intervals can not have gaps between them. |
分步步驟之間不能有間隔。 |
400 |
InvalidStepAdjustments.Overlap |
StepAdjustment intervals can not overlap. |
分步步驟之間不能重疊。 |
400 |
InvalidStepAdjustments.LowerGtUpper |
LowerBound must be less than the UpperBound for StepAdjustment :%s. |
同一分步步驟中,分步下界必須小於分步上界。 |
400 |
InvalidStepAdjustments.BothNull |
Both lower and upper bounds of a StepAdjustment can not be left unspecified. |
同一分步步驟中,分步上界和分步下界不能同時不指定。 |
400 |
InvalidStepAdjustments.MaxNum |
Your scaling rule can have at most %s StepAdjustments. |
同一伸縮組中分步步驟數量超過閾值。 |
400 |
StepBeyondPermitRange |
Specific parameter "%s" beyond permit range. |
分步步驟的上界或下界超過了可選範圍。 |