區別於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 | 伸縮活動調整方式,取值範圍:
|
| AdjustmentValue | Integer | 是 | 100 | 伸縮活動調整值。任何情況下,單次調整的ECS執行個體台數都不能超過1000,否則會導致調整失敗。不同調整方式對應的取值範圍:
|
| MinAdjustmentMagnitude | Integer | 否 | 1 | 伸縮活動最小調整執行個體數,僅當 |
| ClientToken | String | 否 | 123e4567-e89b-12d3-a456-42665544**** | 用於保證請求的等冪性,防止重複提交請求。由用戶端產生該參數值,要保證在不同請求之間唯一,最大值不超過64個ASCII字元,且該參數值中不能包含非ASCII字元。 |
| Action | String | 是 | ScaleWithAdjustment | 系統規定參數。取值:ScaleWithAdjustment。 |
| SyncActivity | Boolean | 否 | 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個字元。格式要求: |
| Value | String | 否 | /usr/local/tomcat | 環境變數值。長度為0~256位。 |
| Cpu | Float | 否 | 2 | 容器的vCPU大小。單位:核。 |
| Memory | Float | 否 | 4 | 容器的記憶體大小。單位:GiB。 |
| LifecycleHookContext | Object | 否 | 生命週期掛鈎的上下文資訊。 |
|
| DisableLifecycleHook | Boolean | 否 | 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 | 伸縮活動的類型。 當 適用範圍:期望執行個體數類型的伸縮組。 |
樣本
請求樣本
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. |
閾值超過了可選範圍。 |