Updating the application auto-scaling policy
Operation description
Usage notes
To scale an application beyond 50 instances, contact SAE technical support to be added to the allowlist. For details, see Contact us.
Try it now
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
sae:UpdateApplicationScalingRule |
update |
*Application
|
None | None |
Request syntax
PUT /pop/v1/sam/scale/applicationScalingRule HTTP/1.1
Request parameters
|
Parameter |
Type |
Required |
Description |
Example |
| AppId |
string |
Yes |
The application ID. |
7171a6ca-d1cd-4928-8642-7d5cfe69**** |
| ScalingRuleName |
string |
Yes |
The name of the auto scaling policy. The name must start with a lowercase letter, contain only lowercase letters, digits, and hyphens (-), and be no more than 32 characters long. Note
You cannot change the name of an auto scaling policy after it is created. |
timer-0800-2100 |
| ScalingRuleTimer |
string |
No |
The configuration of the scheduled scaling policy. This parameter is required for scheduled scaling policies. The parameter includes the following fields:
|
{"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]} |
| ScalingRuleMetric |
string |
No |
The configuration for the metric-based scaling policy. This parameter is required for metric-based scaling policies. The parameter includes the following fields:
Note
If you specify multiple metrics, a scale-out is triggered when any metric meets its target. The number of instances will not exceed maxReplicas. A scale-in is triggered only when all metrics are below their targets. The number of instances will not drop below minReplicas. |
{"maxReplicas":3,"minReplicas":1,"metrics":[{"metricType":"CPU","metricTargetAverageUtilization":20},{"metricType":"MEMORY","metricTargetAverageUtilization":30},{"metricType":"tcpActiveConn","metricTargetAverageUtilization":20},{"metricType":"SLB_QPS","MetricTargetAverageUtilization":25,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"},{"metricType":"SLB_RT","MetricTargetAverageUtilization":35,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"}],"scaleUpRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":0},"scaleDownRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":300}} |
| MinReadyInstances |
integer |
No |
The minimum number of instances that must remain available during a rolling deployment. Valid values:
Note
To ensure business continuity, we recommend that you set the minimum number of surviving instances for each rolling deployment to 1 or higher. |
3 |
| MinReadyInstanceRatio |
integer |
No |
The minimum percentage of instances that must remain available during a rolling deployment. Valid values:
Note
If you specify both MinReadyInstances and MinReadyInstanceRatio, and MinReadyInstanceRatio is not -1, MinReadyInstanceRatio takes precedence. For example, if MinReadyInstances is set to 5 and MinReadyInstanceRatio is set to 50, the system uses 50% to calculate the minimum number of surviving instances. |
-1 |
| EnableIdle |
boolean |
No |
Specifies whether to enable or disable the idle mode. |
Response elements
|
Element |
Type |
Description |
Example |
|
object |
The returned information. |
||
| RequestId |
string |
The request ID. |
91F93257-7A4A-4BD3-9A7E-2F6EAE6D**** |
| TraceId |
string |
The trace ID used to query call details. |
0a98a02315955564772843261e**** |
| Data |
object |
The response data. |
|
| Timer |
object |
The configuration for scheduled scaling. |
|
| EndDate |
string |
The end date of the short-term scheduled scaling policy.
|
2021-04-25 |
| BeginDate |
string |
The start date of the short-term scheduled scaling policy.
|
2021-03-25 |
| Schedules |
array<object> |
The schedules for the scaling policy. |
|
|
object |
The configuration for a specific trigger schedule. |
||
| AtTime |
string |
The time at which the scaling action is triggered. Format: HH:mm. |
08:00 |
| TargetReplicas |
integer |
The target number of instances. |
3 |
| MinReplicas |
integer |
The minimum number of instances. |
1 |
| MaxReplicas |
integer |
The maximum number of instances. |
10 |
| Period |
string |
The recurrence schedule for the scaling policy.
|
* * * |
| UpdateTime |
integer |
The time when the scaling policy was updated, in milliseconds. |
1616642248938 |
| AppId |
string |
The application ID. |
7171a6ca-d1cd-4928-8642-7d5cfe69**** |
| CreateTime |
integer |
The time when the scaling policy was created, in milliseconds. |
1616642248938 |
| LastDisableTime |
integer |
The time when the scaling policy was last disabled, in milliseconds. |
1641882854484 |
| ScaleRuleEnabled |
boolean |
Specifies whether the scaling policy is enabled. Valid values:
|
true |
| ScaleRuleType |
string |
The type of the scaling policy. Valid values:
|
timing |
| Metric |
object |
The configuration for metric-based scaling. |
|
| Metrics |
array<object> |
The metrics that trigger scaling actions. |
|
|
object |
The configuration for a specific metric trigger. |
||
| MetricTargetAverageUtilization |
integer |
The target value for the specified metric. The unit varies based on the metric type.
|
20 |
| MetricType |
string |
The metric that triggers the scaling policy. Valid values:
|
CPU |
| SlbProject |
string |
The name of the Log Service Project for SLB access logs. |
test |
| SlbLogstore |
string |
The name of the Logstore for SLB access logs. |
test |
| Vport |
string |
The SLB port. |
80 |
| SlbId |
string |
The SLB instance ID. |
lb-xxx |
| MaxReplicas |
integer |
The maximum number of instances. |
3 |
| MinReplicas |
integer |
The minimum number of instances. |
1 |
| ScaleRuleName |
string |
The name of the scaling policy. |
test |
| EnableIdle |
boolean |
Specifies whether to enable idle mode. |
|
| Message |
string |
The response message.
|
success |
| ErrorCode |
string |
The error code.
|
|
| Code |
string |
The HTTP status code or a POP error code.
|
200 |
| Success |
boolean |
Specifies whether the request was successful. Valid values:
|
true |
Examples
Success response
JSON format
{
"RequestId": "91F93257-7A4A-4BD3-9A7E-2F6EAE6D****",
"TraceId": "0a98a02315955564772843261e****",
"Data": {
"Timer": {
"EndDate": "2021-04-25",
"BeginDate": "2021-03-25",
"Schedules": [
{
"AtTime": "08:00",
"TargetReplicas": 3,
"MinReplicas": 1,
"MaxReplicas": 10
}
],
"Period": "* * *"
},
"UpdateTime": 1616642248938,
"AppId": "7171a6ca-d1cd-4928-8642-7d5cfe69****",
"CreateTime": 1616642248938,
"LastDisableTime": 1641882854484,
"ScaleRuleEnabled": true,
"ScaleRuleType": "timing",
"Metric": {
"Metrics": [
{
"MetricTargetAverageUtilization": 20,
"MetricType": "CPU",
"SlbProject": "test",
"SlbLogstore": "test",
"Vport": "80",
"SlbId": "lb-xxx"
}
],
"MaxReplicas": 3,
"MinReplicas": 1
},
"ScaleRuleName": "test",
"EnableIdle": false
},
"Message": "success",
"ErrorCode": "",
"Code": "200",
"Success": true
}
Error codes
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | InvalidScalingRuleDate.BeginAfterEnd | The specified beginning time is later than the ending time. | The specified begin date is later than the end date. |
| 400 | InvalidScalingRuleDate.Format | The specified date is invalid. | The specified date is invalid. The correct format is yyyy-MM-dd . |
| 400 | InvalidScalingRuleName.NotFound | The specified ScalingRuleName does not exist. | The specified ScalingRuleName does not exist. |
| 400 | InvalidScalingRuleTime.Conflict | The specified scaling rule time is invalid. Another schedule has been set for the specified time range. Please set a different time. | The specified scaling rule time is invalid. Another schedule has been set for the specified time range. Please set a different time. |
| 400 | InvalidScalingRuleTime.Format | The specified time is invalid. | The specified time is invalid. The correct format is HH:mm . |
| 400 | QuotaExceeded.ScalingRuleTime | The maximum number of scaling policy trigger time is exceeded. | Scaling rule time quota exceeded. |
| 400 | NoComputeResourceQuota.Exceed | Your compute resource is insufficient. Please contact us to raise the quota. | |
| 400 | NoComputeResourceQuota.App.Exceed | You can create %s instances for each application. Please submit a ticket to raise the quota. | You can create %s instances for each application. please join the DingTalk group 32874633 for technical support. |
| 400 | NoComputeResourceQuota.User.Exceed | Your account is limited to create %s instances. Please submit a ticket to raise the quota. | Your account is limited to create %s instances. please join the DingTalk group 32874633 for technical support. |
| 400 | System.Upgrading | The system is being upgraded. Please try again later. | |
| 400 | MinReadyInstances.Not.Smaller.Replicas | The minimum number of available instances must be less than the number of application instances. | The minimum number of available instances must be less than the number of application instances. |
| 400 | MinReadyInstanceRatio.Invalid | The ratio of minimum available instances must be between 0 and 100. | |
| 400 | Application.ChangerOrderRunning | An application change process is in progress. Please try again later. | An application change process is in progress. Please try again later. |
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.