全部產品
Search
文件中心

Auto Scaling:ScaleWithAdjustment

更新時間:Jan 14, 2025

區別於ExecuteScalingRule介面,您無需提前建立伸縮規則,直接調用API ScaleWithAdjustment介面快速基於指定調整規則引發彈性擴縮容。

介面說明

  • 調用該介面前,請確保滿足以下條件:
    • 伸縮組處於Active狀態。
    • 伸縮組內沒有執行中的伸縮活動。
  • 當伸縮組沒有執行中的伸縮活動時,該介面可以繞過冷卻時間(Cooldown)直接執行伸縮活動。
  • 如果伸縮規則需要增加的ECS執行個體數加上當前伸縮組的執行個體數(Total Capacity)大於最大執行個體數(MaxSize),則按Total Capacity=MaxSize執行伸縮活動。
  • 如果當前伸縮組的執行個體數(Total Capacity)減去伸縮規則需要減少的ECS執行個體數小於最小執行個體數(MinSize),則按Total Capacity=MinSize執行伸縮活動。

調用該介面返回成功,只是表示Auto Scaling服務接受了該介面的調用請求,可以執行伸縮活動,但不代表伸縮活動能夠執行成功。您需要通過返回的ScalingActivityId查看該伸縮活動的執行狀態。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

請求參數

名稱

類型

是否必選

樣本值

描述

ScalingGroupId String asg-j6c1o397427hyjdc****

伸縮組的ID。

AdjustmentType String QuantityChangeInCapacity

伸縮活動調整方式,取值範圍:

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

伸縮活動調整值。任何情況下,單次調整的ECS執行個體台數都不能超過1000,否則會導致調整失敗。不同調整方式對應的取值範圍:

  • QuantityChangeInCapacity:-1000~1000。
  • PercentChangeInCapacity:-100~10000。
  • TotalCapacity:0~2000。
MinAdjustmentMagnitude Integer 1

伸縮活動最小調整執行個體數,僅當AdjustmentTypePercentChangeInCapacity時生效。

ClientToken String 123e4567-e89b-12d3-a456-42665544****

用於保證請求的等冪性,防止重複提交請求。由用戶端產生該參數值,要保證在不同請求之間唯一,最大值不超過64個ASCII字元,且該參數值中不能包含非ASCII字元。

Action String ScaleWithAdjustment

系統規定參數。取值:ScaleWithAdjustment

SyncActivity Boolean false

伸縮活動同步執行開關,僅對具有期望執行個體數配置項的伸縮組有效。取值範圍:

  • true:同步流程,即執行伸縮規則時會直接觸發伸縮組的擴縮容活動。
  • false:非同步流程,即修改伸縮組內的期望執行個體數時,不會立刻觸發伸縮組的實際擴縮容活動,需等待期望執行個體數變化後,系統自動檢測期望執行個體數與伸縮組內當前執行個體數不一致,才會觸發擴縮容活動。
說明 關於期望執行個體數的更多資訊,請參見期望執行個體數

預設值:false。

Overrides Object

ECI類型的伸縮組擴容指定覆寫參數。

Cpu Float 2

執行個體層級vCPU大小。單位:核。

Memory Float 4

執行個體層級記憶體大小。單位:GiB。

ContainerOverride Array

覆寫容器列表參數。

Name String container-1

容器名稱。當需要覆寫容器參數時,必須指定容器名稱,容器名稱與伸縮配置中的容器名稱相匹配時,方可覆寫容器參數。

Arg Array of String arg

容器啟動命令對應的參數。最多10個。

Command Array of String sleep

容器啟動命令。最多20個。每個命令最多包含256個字元。

EnvironmentVar Array

環境變數的資訊列表。

Key String PATH

環境變數名。長度為1~128個字元。格式要求:[0-9a-zA-Z],以及底線(_),不能以數字開頭。

Value String /usr/local/tomcat

環境變數值。長度為0~256位。

Cpu Float 2

容器的vCPU大小。單位:核。

Memory Float 4

容器的記憶體大小。單位:GiB。

LifecycleHookContext Object

生命週期掛鈎的上下文資訊。

DisableLifecycleHook Boolean false

伸縮活動是否禁用所有生命週期掛鈎功能。取值範圍:

  • true:禁用。
  • false:不禁用。
IgnoredLifecycleHookIds Array of String ash-bp14zolna43z266bq***

伸縮活動禁用的生命週期掛鈎ID列表。

ActivityMetadata String {"key":"value"}

伸縮活動的中繼資料。

返回資料

名稱

類型

樣本值

描述

ScalingActivityId String asa-bp175o6f6ego3r2j****

伸縮活動的ID。

RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3****

請求ID。

ActivityType String CapacityChange

伸縮活動的類型。

ActivityTypeCapacityChange時,表示傳回值ScalingActivityId對應伸縮活動僅修改伸縮組期望執行個體數,沒有立刻執行擴縮。

適用範圍:期望執行個體數類型的伸縮組。

樣本

請求樣本

http(s)://ess.aliyuncs.com/?ScalingGroupId=asg-j6c1o397427hyjdc****
&AdjustmentType=QuantityChangeInCapacity
&AdjustmentValue=100
&MinAdjustmentMagnitude=1
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&Action=ScaleWithAdjustment
&SyncActivity=false
&Overrides={"Cpu":2.0,"Memory":4.0,"ContainerOverride":[{"Name":"container-1","Arg":["arg"],"Command":["sleep"],"EnvironmentVar":[{"Key":"PATH","Value":"/usr/local/tomcat"}],"Cpu":2.0,"Memory":4.0}]}
&LifecycleHookContext={"DisableLifecycleHook":false,"IgnoredLifecycleHookIds":["ash-bp14zolna43z266bq***"]}
&ActivityMetadata={"key":"value"}
&公用請求參數

正常返回樣本

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<ScaleWithAdjustmentResponse>
    <ScalingActivityId>asa-bp175o6f6ego3r2j****</ScalingActivityId>
    <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
    <ActivityType>CapacityChange</ActivityType>
</ScaleWithAdjustmentResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "ScalingActivityId" : "asa-bp175o6f6ego3r2j****",
  "RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
  "ActivityType" : "CapacityChange"
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。

HttpCode

錯誤碼

錯誤資訊

描述

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

BreachThresholdBeyondPermitRange

Specific parameter "%s" beyond permit range.

閾值超過了可選範圍。