伸縮規則的作用由伸縮規則的類型來決定,可用于觸發伸縮活動或者智能設置伸縮組邊界值。您可以根據實際業務需求,調用API CreateScalingRule創建不同類型的伸縮規則,例如,您的業務需求僅需要設置伸縮組邊界值,建議您選擇預測規則類型。
接口說明
請注意以下參數相關說明:
- 當AdjustmentType是TotalCapacity時,表示將當前伸縮組的ECS或ECI實例數量調整到指定數量,對應的AdjustmentValue值必須大于等于0。
- 當AdjustmentType是QuantityChangeInCapacity或PercentChangeInCapacity,對應的AdjustmentValue值為正數表示增加實例、為負數表示減少實例。
- 當AdjustmentType是PercentChangeInCapacity,彈性伸縮服務以伸縮組當前實例數(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實例將正常的加入伸縮組,但是期間將不會向云監控上報監控數據。 說明 動態計算需要擴縮容的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. |
分步步驟的上界或下界超過了可選范圍。 |