全部產品
Search
文件中心

Auto Scaling:CreateScalingRule

更新時間:Jan 14, 2025

伸縮規則的作用由伸縮規則的類型來決定,可用於觸發伸縮活動或者智能設定伸縮組邊界值。您可以根據實際業務需求,調用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

伸縮規則最小調整執行個體數。僅當伸縮規則類型為SimpleScalingRuleStepScalingRule,且AdjustmentTypePercentChangeInCapacity時生效。

AdjustmentType String QuantityChangeInCapacity

伸縮規則的調整方式,適用於簡單規則和步進規則,且此時該項必選。取值範圍:

  • QuantityChangeInCapacity:增加或減少指定數量的ECS執行個體。
  • PercentChangeInCapacity:增加或減少指定比例的ECS執行個體。
  • TotalCapacity:將當前伸縮組的ECS執行個體數量調整到指定數量。
AdjustmentValue Integer 100

伸縮規則的調整值,適用於簡單規則和步進規則,且此時該項必選。任何情況下,單次調整的ECS執行個體台數都不能超過1000。不同調整方式對應的取值範圍:

  • QuantityChangeInCapacity:-1000~1000。
  • PercentChangeInCapacity:-100~10000。
  • TotalCapacity:0~2000。
ScalingRuleType String SimpleScalingRule

伸縮規則類型。取值範圍:

  • SimpleScalingRule:簡單規則。根據調整方式(AdjustmentType)和調整值(AdjustmentValue)調整ECS或ECI執行個體數量。
  • TargetTrackingScalingRule:目標追蹤規則。根據預定義監控(MetricName)項動態計算需要擴縮容的ECS或ECI執行個體數量,盡量將預定義監控項的指標值維持在目標值(TargetValue)附近。
  • StepScalingRule:步進規則,根據閾值和指標值提供分步擴充方式。
  • PredictiveScalingRule:預測規則,基於機器學習能力分析伸縮組的歷史監控資料預測未來監控指標值,並支援自動建立定時任務設定伸縮組邊界。

預設值:SimpleScalingRule。

EstimatedInstanceWarmup Integer 300

執行個體預熱時間,適用於目標追蹤規則和步進規則。處於預熱狀態的ECS執行個體將正常的加入伸縮組,但是期間將不會向CloudMonitor上報監控資料。

說明 動態計算需要擴縮容的ECS執行個體數量時,處於預熱狀態的執行個體不計入現有執行個體數量。

取值範圍:0~86400,單位:秒。

預設值:300。

MetricName String CpuUtilization

預定義監控項,適用於目標追蹤規則和預測規則,且此時該項必選。

目標追蹤規則取值範圍:

  • CpuUtilizationAgent:(Agent)CPU使用率(推薦)。
  • MemoryUtilization:(Agent)記憶體(推薦)。
  • CpuUtilization:(ECS)平均CPU使用率。
  • IntranetTx:(ECS)內網出流量的平均值。
  • IntranetRx:(ECS)內網入流量的平均值。
  • VpcInternetTx:(ECS)公網出流量的平均值。
  • VpcInternetRx:(ECS)公網入流量的平均值。
  • LoadBalancerRealServerAverageQps:(ALB)伺服器組單機QPS。

預測規則取值範圍:

  • CpuUtilization:(ECS)平均CPU使用率。
  • IntranetRx:(ECS)內網入流量平均值。
  • IntranetTx :(ECS)內網出流量平均值。

更多資訊,請參見系統監控警示任務

TargetValue Float 0.125

目標值,適用於目標追蹤規則和預測規則,且此時該項必選。TargetValue最多保留小數點後三位,且必須大於0。

DisableScaleIn Boolean false

是否禁用縮容,僅適用於目標追蹤規則。

預設值:false。

ScaleInEvaluationCount Integer 15

建立目標追蹤規則後,會自動建立警示任務。本參數用於指定對應的縮容警示任務觸發警示時,所需連續滿足閾值條件的次數。

預設值:15。

ScaleOutEvaluationCount Integer 3

建立目標追蹤規則後,會自動建立警示任務。本參數用於指定對應的擴容警示任務觸發警示時,所需連續滿足閾值條件的次數。

預設值:3。

PredictiveScalingMode String PredictAndScale

預測規則的模式,取值範圍:

  • PredictAndScale:產生預測結果並建立預測任務。
  • PredictOnly:產生預測結果,但不會建立預測任務。

預設值:PredictAndScale。

PredictiveValueBehavior String MaxOverridePredictiveValue

預測規則最大值處理方式,取值範圍:

  • MaxOverridePredictiveValue:初始最大值會覆蓋預測值。預測值大於初始最大值時,預測任務的最大值採用初始最大值。
  • PredictiveValueOverrideMax:預測值會覆蓋初始最大值。預測值大於初始最大值時,預測任務的最大值採用預測值。
  • PredictiveValueOverrideMaxWithBuffer:預測值會附加一定比例。預測值會按照PredictiveValueBuffer比例增加,當增加後的值大於初始最大值時,會採用增加後的值。

預設值:MaxOverridePredictiveValue。

PredictiveValueBuffer Integer 50

PredictiveValueBehaviorPredictiveValueOverrideMaxWithBuffer時生效,預測值會按照該比例增加,當增加後的值大於初始最大值時,會採用增加後的值。取值範圍:0~100。

預設值: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.

分步步驟的上界或下界超過了可選範圍。