All Products
Search
Document Center

Serverless App Engine:UpdateApplicationScalingRule

Last Updated:Jan 14, 2026

Updates the auto-scaling policy for an application.

Operation description

Considerations

To scale out a single application to more than 50 instances, contact SAE technical support to be added to the whitelist. For more information, see Contact us.

Try it now

Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.

Test

RAM authorization

The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

Access level

Resource type

Condition key

Dependent action

sae:UpdateApplicationScalingRule

update

*Application

acs:sae:{#regionId}:{#accountId}:application/{#namespaceid}/{#appid}

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 policy name after the auto scaling policy 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 and endDate: The start date and end date of the scheduled scaling policy.
    • If both fields are set to null, the policy is executed for a long term. This is the default value.

    • If you set the fields to specific dates, such as 2021-03-25 for beginDate and 2021-04-25 for endDate, the policy is valid for one month.

  • period: The period in which the scheduled scaling policy is executed.
    • * * *: Executes the scheduled policy at a specified time every day.

    • * * Fri,Mon: Executes the scheduled policy at a specified time on specified days of the week. You can select multiple days. The time is in the GMT+8 time zone. Valid values:
      • Sun: Sunday

      • Mon: Monday

      • Tue: Tuesday

      • Wed: Wednesday

      • Thu: Thursday

      • Fri: Friday

      • Sat: Saturday

    • 1,2,3,28,31 * *: Executes the scheduled policy at a specified time on specified days of a month. The value can be from 1 to 31. If a month does not have the 31st day, the policy is not executed on that day.

  • schedules: The time points when the auto scaling policy is triggered and the number of application instances to maintain during those periods. You can specify up to 20 time points. The field includes the following parameters:
    • atTime: The trigger time point. The format is HH:mm. For example, 08:00.

    • targetReplicas: The number of application instances. This can also be the minimum number of surviving instances for each deployment. The value can be from 1 to 50.

      Note

      Set the minimum number of surviving instances for each rolling deployment to 1 or more to ensure business continuity. If you set this to 0, your application is interrupted during an upgrade.

{"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]}

ScalingRuleMetric

string

No

The configuration of the metric-based scaling policy. This parameter is required for metric-based scaling policies.

The parameter includes the following fields:

  • maxReplicas: The maximum number of application instances.

  • minReplicas: The minimum number of application instances.

  • metricType: The metric that triggers the policy.
    • CPU: CPU usage.

    • MEMORY: Memory usage.

    • QPS: The average queries per second (QPS) of a single instance of a Java application in one minute.

    • RT: The average response time (RT) of all service interfaces of a Java application in one minute.

    • tcpActiveConn: The average number of active TCP connections of a single instance in 30 seconds.

    • SLB_QPS: The average QPS of a single instance for an internet-facing Server Load Balancer (SLB) instance in 15 seconds.

    • SLB_RT: The average RT of an internet-facing SLB instance in 15 seconds.

    • INTRANET_SLB_QPS: The average QPS of a single instance for an internal-facing SLB instance in 15 seconds.

    • INTRANET_SLB_RT: The average RT of an internal-facing SLB instance in 15 seconds.

  • metricTargetAverageUtilization: The target value for the specified metricType.
    • The target CPU usage. Unit: percent.

    • The target memory usage. Unit: percent.

    • The target QPS.

    • The target response time. Unit: milliseconds.

    • The average number of active TCP connections. Unit: connections per second.

    • The target QPS of an internet-facing SLB instance.

    • The target RT of an internet-facing SLB instance. Unit: milliseconds.

    • The target QPS of an internal-facing SLB instance.

    • The target RT of an internal-facing SLB instance. Unit: milliseconds.

  • slbId: The SLB ID.

  • slbProject: The Simple Log Service project.

  • slbLogstore: The Simple Log Service Logstore.

  • vport: The listening port of the SLB instance. HTTP and HTTPS protocols are supported.

  • scaleUpRules: The scale-out rules.

  • scaleDownRules: The scale-in rules.

  • step: The step size for a scale-out or scale-in event. This is the maximum number of instances that can be added or removed at a time.

  • disabled: Specifies whether to disable scale-in. If you disable scale-in, the number of application instances is never reduced. This prevents business risks that can occur when instances are scaled in during peak traffic.
    • true: Disables scale-in.

    • false: Enables scale-in. This is the default value.

  • stabilizationWindowSeconds: The cooldown time for a scale-out or scale-in event. The value can be from 0 to 3600. Unit: seconds. The default value is 0.

Note

You can specify one or more metrics. If you specify multiple metrics, a scale-out event is triggered when any of the metrics reaches its target value. The number of instances after the scale-out does not exceed the maximum number of instances. A scale-in event is triggered when all metrics are below their target values. The number of instances after the scale-in is not less than the minimum number of instances.

{"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 surviving instances. Valid values:

  • If you set this to 0, your application is interrupted during an upgrade.

  • If you set this to -1, the system uses a recommended value, which is 25% of the current number of instances. For example, if you have 5 instances, the number of surviving instances is 2 (5 × 25% = 1.25, rounded up).

Note

Set the minimum number of surviving instances for each rolling deployment to 1 or more to ensure business continuity.

3

MinReadyInstanceRatio

integer

No

The percentage of the minimum number of surviving instances. Valid values:

  • -1: This is the initial value. It indicates that a percentage is not used.

  • 0 to 100: This value is a percentage that is rounded up. For example, if you set this to 50%, and you have 5 instances, the number of surviving instances is 3.

Note

If you specify both MinReadyInstance and MinReadyInstanceRatio, and MinReadyInstanceRatio is not -1, MinReadyInstanceRatio takes precedence. For example, if MinReadyInstances is 5 and MinReadyInstanceRatio is 50, the system uses 50% to calculate the minimum number of surviving instances.

-1

EnableIdle

boolean

No

Response elements

Element

Type

Description

Example

object

The information returned.

RequestId

string

The request ID.

91F93257-7A4A-4BD3-9A7E-2F6EAE6D****

TraceId

string

The trace ID. You can use the trace ID to query the details of a call.

0a98a02315955564772843261e****

Data

object

The returned result.

Timer

object

The scheduled scaling policy.

EndDate

string

The end date of the short-term scheduled scaling policy. The following rules apply:

  • If you leave both BeginDate and EndDate empty, the policy is a long-term policy. This is the default behavior.

  • If you specify dates, for example, set BeginDate to 2021-03-25 and EndDate to 2021-04-25, the policy is effective for one month.

2021-04-25

BeginDate

string

The start date of the short-term scheduled scaling policy. The following rules apply:

  • If you leave both BeginDate and EndDate empty, the policy is a long-term policy. This is the default behavior.

  • If you specify dates, for example, set BeginDate to 2021-03-25 and EndDate to 2021-04-25, the policy is effective for one month.

2021-03-25

Schedules

array<object>

The points in time when the policy is triggered within a day.

object

The data of a point in time.

AtTime

string

The point in time. Format: HH:mm.

08:00

TargetReplicas

integer

The number of target instances.

3

MinReplicas

integer

The minimum number of instances.

1

MaxReplicas

integer

The maximum number of instances.

10

Period

string

The period in which the scheduled scaling policy is executed. Valid values:

  • * * *: The policy is executed at a specified time every day.

  • * * Fri,Mon: The policy is executed at a specified time on specified days of a week. You can select multiple days. The time is in the GMT+8 time zone. Valid values:

    • Sun: Sunday

    • Mon: Monday

    • Tue: Tuesday

    • Wed: Wednesday

    • Thu: Thursday

    • Fri: Friday

    • Sat: Saturday

  • 1,2,3,28,31 * *: The policy is executed at a specified time on specified days of a month. You can select multiple days. The value can be an integer from 1 to 31. If a month does not have a specified day, such as the 31st, the policy is not executed on that day.

* * *

UpdateTime

integer

The time when the scaling policy was updated. Unit: milliseconds.

1616642248938

AppId

string

The application ID.

7171a6ca-d1cd-4928-8642-7d5cfe69****

CreateTime

integer

The time when the scaling policy was created. Unit: milliseconds.

1616642248938

LastDisableTime

integer

The time when the scaling policy was last disabled.

1641882854484

ScaleRuleEnabled

boolean

Indicates whether the scaling policy is enabled. Valid values:

  • true: The policy is enabled.

  • false: The policy is disabled.

true

ScaleRuleType

string

The type of the scaling policy. Valid values:

  • timing: scheduled scaling

  • metric: metric-based scaling

  • mix: hybrid scaling

timing

Metric

object

The metric-based scaling policy.

Metrics

array<object>

The list of metric-based scaling policies.

object

The metric data.

MetricTargetAverageUtilization

integer

The target value of the metric.

  • The target CPU utilization. Unit: percent.

  • The target memory usage. Unit: percent.

  • The queries per second (QPS). Unit: QPS.

  • The response time. Unit: milliseconds.

  • The average number of active TCP connections. Unit: connections/second.

  • The QPS of the public-facing SLB instance. Unit: QPS.

  • The response time of the public-facing SLB instance. Unit: milliseconds.

  • The QPS of the private-network SLB instance. Unit: QPS.

  • The response time of the private-network SLB instance. Unit: milliseconds.

20

MetricType

string

The metric that triggers the scaling policy. Valid values:

  • CPU: CPU utilization.

  • MEMORY: memory usage.

  • QPS: the average QPS of a single instance for a Java application in one minute.

  • RT: the average response time (RT) of all service interfaces for a Java application in one minute.

  • tcpActiveConn: the average number of active TCP connections of a single instance in 30 seconds.

  • SLB_QPS: the average QPS of a single instance for a public-facing SLB instance in 15 seconds.

  • SLB_RT: the average RT of a public-facing SLB instance in 15 seconds.

  • INTRANET_SLB_QPS: the average QPS of a single instance for a private-network SLB instance in 15 seconds.

  • INTRANET_SLB_RT: the average RT of a private-network SLB instance in 15 seconds.

CPU

SlbProject

string

The SLB access log project.

test

SlbLogstore

string

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

Message

string

The returned message. Valid values:

  • success is returned if the request is successful.

  • An error code is returned if the request fails.

success

ErrorCode

string

The error code. The following rules apply:

  • This parameter is not returned if the request is successful.

  • This parameter is returned if the request fails. For more information, see the Error codes section of this topic.

Code

string

The HTTP status code or the POP error code. Valid values:

  • 2xx: The request is successful.

  • 3xx: The request is redirected.

  • 4xx: A client error occurred.

  • 5xx: A server error occurred.

200

Success

boolean

Indicates whether the application instance was successfully restarted. Valid values:

  • true: The restart succeeded.

  • false: The restart failed.

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.