區別于ExecuteScalingRule接口,您無需提前創建伸縮規則,直接調用API ScaleWithAdjustment接口快速基于指定調整規則觸發彈性擴縮容。
接口說明
- 調用該接口前,請確保滿足以下條件:
- 伸縮組處于Active狀態。
- 伸縮組內沒有執行中的伸縮活動。
- 當伸縮組沒有執行中的伸縮活動時,該接口可以繞過冷卻時間(Cooldown)直接執行伸縮活動。
- 如果伸縮規則需要增加的ECS實例數加上當前伸縮組的實例數(Total Capacity)大于最大實例數(MaxSize),則按Total Capacity=MaxSize執行伸縮活動。
- 如果當前伸縮組的實例數(Total Capacity)減去伸縮規則需要減少的ECS實例數小于最小實例數(MinSize),則按Total Capacity=MinSize執行伸縮活動。
調用該接口返回成功,只是表示彈性伸縮服務接受了該接口的調用請求,可以執行伸縮活動,但不代表伸縮活動能夠執行成功。您需要通過返回的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. |
您并未向彈性伸縮完整授權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. |
指定伸縮規則所屬的伸縮組的負載均衡實例未處于active狀態。 |
400 |
IncorrectLoadBalancerHealthCheck |
The current health check type of specified load balancer does not support this action. |
指定伸縮規則所屬的伸縮組的負載均衡實例未開啟健康檢查。 |
400 |
InvalidLoadBalancerId.IncorrectInstanceNetworkType |
The network type of the instance in specified load balancer does not support this action. |
指定的負載均衡實例含有的ECS實例的網絡類型與伸縮組的網絡類型不匹配。 |
400 |
InvalidLoadBalancerId.VPCMismatch |
The specified virtual switch and the instance in specified load balancer are not in the same VPC. |
指定的伸縮組的負載均衡實例含有的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. |
彈性伸縮的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. |
閾值超過了可選范圍。 |