All Products
Search
Document Center

Auto Scaling:CreateScalingRule

Last Updated:Aug 28, 2026

The function of a scaling rule is determined by its type, which can be used to trigger a scaling activity or intelligently set the boundary values of a scaling group. Depending on your business requirements, you can invoke the CreateScalingRule API to create different types of scaling rules. For example, if your business only requires setting the boundary values of a scaling group, we recommend that you select the predictive rule type.

Operation description

A scaling rule defines specific scale-out or scale-in operations, such as adding or removing N instances. If executing a scaling rule would cause the number of ECS or ECI instances in the scaling group to fall below MinSize or exceed MaxSize, automatic scaling automatically adjusts the number of ECS or ECI instances to be added or removed so that the actual instance count reaches MinSize or MaxSize. However, the configured value of the scaling rule remains unchanged. Examples are as follows:

  • For a scaling group with MaxSize=3 and a current Total Capacity of 2, if the scaling rule specifies adding 3 ECS instances, only 1 ECS instance will actually be added during execution, but the configured value of the scaling rule remains 3.

  • For a scaling group with MinSize=2 and a current Total Capacity of 3, if the scaling rule specifies removing 5 ECS instances, only 1 ECS instance will actually be removed during execution, but the configured value of the scaling rule remains 5.

Please note the following parameter-related descriptions:

  • When AdjustmentType is TotalCapacity, it means adjusting the current number of ECS or ECI instances in the scaling group to the specified quantity. The corresponding AdjustmentValue must be greater than or equal to 0.

  • When AdjustmentType is QuantityChangeInCapacity or PercentChangeInCapacity, a positive AdjustmentValue indicates adding instances, while a negative value indicates removing instances.

  • When AdjustmentType is PercentChangeInCapacity, the automatic scaling service calculates the number of ECS or ECI instances to add or remove by multiplying the current instance count (Total Capacity) by AdjustmentValue/100 and then applying rounding.

  • If a cooldown time (Cooldown) is specified in the scaling rule, the scaling group enters a cooldown period for the specified duration after the scaling activity triggered by this rule completes. If no cooldown time is specified in the scaling rule, the default cooldown time (DefaultCooldown) of the scaling group is used.

  • There is a limit on the number of scaling rules that can be created within a single scaling group. For details, see Limits.

  • The returned Unique Identifier (ScalingRuleAri) of the scaling rule can be used with the following APIs:
    • Specify it in the ScalingRuleAri parameter when invoking ExecuteScalingRule to manually execute the scaling rule.

    • Specify it in the ScheduledAction parameter when creating a scheduled task (CreateScheduledTask) to execute the scaling rule at a scheduled time.

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

ess:CreateScalingRule

create

*ScalingGroup

acs:ess:{#regionId}:{#accountId}:scalinggroup/{#ScalingGroupId}

None None

Request parameters

Parameter

Type

Required

Description

Example

ScalingGroupId

string

Yes

The ID of the scaling group to which the scaling rule belongs.

asg-bp1ffogfdauy0jw0****

ScalingRuleName

string

No

The name of the scaling rule. The name must be 2 to 64 characters in length, and can contain letters, digits, underscores (_), hyphens (-), and periods (.). The name must start with a letter or a digit.

The name of each scaling rule must be unique under the same account within a region.

If you leave this parameter empty, the scaling rule ID is used.

scalingrule****

Cooldown

integer

No

The cooldown time of the scaling rule. This parameter is available only if you set the ScalingRuleType parameter to SimpleScalingRule. Valid values: 0 to 86400. Unit: seconds.

By default, this parameter is left empty.

60

MinAdjustmentMagnitude

integer

No

The minimum number of instances that must be scaled when the AdjustmentType parameter is set to PercentChangeInCapacity. This parameter takes effect only if you set the ScalingRuleType parameter to SimpleScalingRule or StepScalingRule.

1

AdjustmentType

string

No

The scaling method of the scaling rule. This parameter is required only if you set the ScalingRuleType parameter to SimpleScalingRule or StepScalingRule. Valid values:

  • QuantityChangeInCapacity: adds the specified number of ECS instances to or removes the specified number of ECS instances from the scaling group.

  • PercentChangeInCapacity: adds the specified percentage of ECS instances to or removes the specified percentage of ECS instances from the scaling group.

  • TotalCapacity: adjusts the number of ECS instances in the scaling group to a specified number.

QuantityChangeInCapacity

AdjustmentValue

integer

No

The number of instances that must be scaled based on the scaling rule. This parameter is required only if you set the ScalingRuleType parameter to SimpleScalingRule or StepScalingRule. The number of ECS instances that are scaled in a single scaling activity cannot exceed 1,000.

  • Valid values if you set the AdjustmentType parameter to QuantityChangeInCapacity: -1000 to 1000.

  • Valid values if you set the AdjustmentType parameter to PercentChangeInCapacity: -100 to 10000.

  • Valid values if you set the AdjustmentType parameter to TotalCapacity: 0 to 2000.

100

ScalingRuleType

string

No

The type of the scaling rule. Valid values:

  • SimpleScalingRule: a simple scaling rule. After you execute a simple scaling rule, Auto Scaling adjusts the number of ECS instances or elastic container instances in the scaling group based on the values of AdjustmentType and AdjustmentValue.

  • TargetTrackingScalingRule: a target tracking scaling rule. After you execute a target tracking scaling rule, Auto Scaling dynamically calculates the number of ECS instances or elastic container instances to scale based on the predefined metric (MetricName) and attempts to maintain the metric value close to the expected value (TargetValue).

  • StepScalingRule: a step scaling rule. After you execute a step scaling rule, Auto Scaling scales instances step by step based on the predefined thresholds and metric values.

  • PredictiveScalingRule: a predictive scaling rule. After you execute a predictive scaling rule, Auto Scaling uses machine learning to analyze historical monitoring data of the scaling group and predicts the future values of metrics. In addition, Auto Scaling automatically creates scheduled tasks to adjust the boundary values for the scaling group.

Default value: SimpleScalingRule.

SimpleScalingRule

EstimatedInstanceWarmup

integer

No

The warmup period of an instance. This parameter is available only if you set the ScalingRuleType parameter to TargetTrackingScalingRule or PredictiveScalingRule. Auto Scaling adds ECS instances that are in the warmup state to a scaling group but does not report monitoring data to CloudMonitor during the warmup period.

Note

Auto Scaling calculates the number of ECS instances that must be scaled. ECS instances in the warmup state are not counted towards the current capacity of the scaling group.

Valid values: 0 to 86400. Unit: seconds.

Default value: 300.

300

MetricName

string

No

The predefined metric that you want to monitor. If you set ScalingRuleType to TargetTrackingScalingRule or PredictiveScalingRule, you must specify this parameter.

Valid values if you set ScalingRuleType to TargetTrackingScalingRule:

  • CpuUtilizationAgent (recommended): the CPU utilization.

  • MemoryUtilization (recommended): the memory usage.

  • CpuUtilization: the average CPU utilization.

  • IntranetTx: the outbound traffic over an internal network.

  • IntranetRx: the average inbound traffic over an internal network.

  • VpcInternetTx: the outbound traffic from a virtual private cloud (VPC) to the Internet.

  • VpcInternetRx: the inbound traffic from the Internet to a VPC.

  • LoadBalancerRealServerAverageQps:the queries per second (QPS) per Application Load Balancer (ALB) server group.

Valid values if you set ScalingRuleType to PredictiveScalingRule:

  • CpuUtilization: the average CPU utilization.

  • IntranetRx: the average inbound traffic over an internal network.

  • IntranetTx: the average outbound traffic over an internal network.

For more information, see Event-triggered tasks of the system monitoring type.

CpuUtilization

TargetValue

number

No

The target value. This parameter is required only if you set the ScalingRuleType parameter to TargetTrackingScalingRule or PredictiveScalingRule. The value must be greater than 0 and can have up to three decimal places.

0.125

DisableScaleIn

boolean

No

Specifies whether to disable scale-in. This parameter is available only if you set ScalingRuleType to TargetTrackingScalingRule.

Default value: false.

false

ScaleInEvaluationCount

integer

No

The number of consecutive times that the event-triggered task created for scale-in activities must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and then associated with the target tracking scaling rule.

Default value: 15.

15

ScaleOutEvaluationCount

integer

No

The number of consecutive times that the event-triggered task created for scale-out activities must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and then associated with the target tracking scaling rule.

Default value: 3.

3

PredictiveScalingMode

string

No

The mode of the predictive scaling rule. Valid values:

  • PredictAndScale: produces predictions and creates prediction tasks.

  • PredictOnly: produces predictions but does not create prediction tasks.

Default value: PredictAndScale.

PredictAndScale

PredictiveValueBehavior

string

No

The maximum value for predication tasks. Valid values:

  • MaxOverridePredictiveValue: uses the initial maximum capacity as the maximum value for prediction tasks if the predicted value is greater than the initial maximum capacity.

  • PredictiveValueOverrideMax: uses the predicted value as the maximum value for prediction tasks if the predicted value is greater than the initial maximum capacity.

  • PredictiveValueOverrideMaxWithBuffer: increases the predicted value by a percentage that is specified by the PredictiveValueBuffer parameter. If the predicted value that is increased by the percentage is greater than the initial maximum capacity, the increased value is used as the maximum value for prediction tasks.

Default value: MaxOverridePredictiveValue.

MaxOverridePredictiveValue

PredictiveValueBuffer

integer

No

The ratio based on which the predicted value is increased when you set PredictiveValueBehavior to PredictiveValueOverrideMaxWithBuffer. If the predicted value increased by this ratio is greater than the initial maximum capacity, the increased value is used as the maximum value for prediction tasks. Valid values: 0 to 100.

Default value: 0.

50

PredictiveTaskBufferTime

integer

No

The amount of buffer time before the prediction task is executed. By default, all prediction tasks that are automatically created for a predictive scaling rule are executed on the hour. You can specify an amount of buffer time for resource preparation before the prediction tasks are executed. Valid values: 0 to 60. Unit: minutes.

Default value: 0.

30

InitialMaxSize

integer

No

The maximum number of ECS instances that can be contained in the scaling group. If you specify InitialMaxSize, you must specify PredictiveValueBehavior.

The default value of this parameter is the value of MaxSize.

100

StepAdjustments

array<object>

No

Details of the step adjustments.

object

No

Details of the step adjustments.

MetricIntervalUpperBound

number

No

The upper limit that is specified in a step adjustment. Valid values: -9.999999E18 to 9.999999E18.

5.0

ScalingAdjustment

integer

No

The number of ECS instances that you want to scale in a step adjustment. This parameter is available only if you set the ScalingRuleType parameter to StepScalingRule.

1

MetricIntervalLowerBound

number

No

The lower limit specified in a step adjustment. This parameter is available only if you set the ScalingRuleType parameter to StepScalingRule. Valid values: -9.999999E18 to 9.999999E18.

1.0

RegionId

string

No

The region ID of the scaling group.

cn-hangzhou

AlarmDimensions

array<object>

No

The metric dimensions. This parameter is applicable to target tracking scaling rules. If your predefined metric requires extra dimensions, you must specify this parameter. For example, if you use LoadBalancerRealServerAverageQps as your predefined metric, you must use this parameter to specify the rulePool dimension.

object

No

Dimension information values for monitoring metrics. This parameter applies to target tracking rules and is used when additional dimension information is required for a metric. For example, the LoadBalancerRealServerAverageQps metric requires specifying the rulePool dimension key-value pair.

DimensionKey

string

No

The dimension key of the metric.

rulePool

DimensionValue

string

No

The dimension value of the metric.

sgp-l1cbirz451yxuxxx

MetricType

string

No

The metric type. Valid values:

  • system: system metrics of CloudMonitor.

  • custom: custom metrics that are reported to CloudMonitor.

  • hybrid: metrics of Hybrid Cloud Monitoring.

system

HybridMonitorNamespace

string

No

The ID of the Hybrid Cloud Monitoring namespace.

For information about how to manage Hybrid Cloud Monitoring namespaces, see Manage namespaces.

aliyun-test

HybridMetrics

array<object>

No

The Hybrid Cloud Monitoring metrics. For more information, see Create a custom target tracking scaling rule.

array<object>

No

Id

string

No

The reference ID of the metric in the metric expression.

a

Expression

string

No

The metric expression that consists of multiple Hybrid Cloud Monitoring metrics. It calculates a result used to trigger scaling events.

The expression must be written in Reverse Polish Notation (RPN) format and supports only the following operators: +, -, *, /.

(a+b)/2

MetricName

string

No

The name of the Hybrid Cloud Monitoring metric.

AliyunSmq_NumberOfMessagesVisible

Statistic

string

No

The statistical method of the metric value. Valid values:

  • Average: calculates the average value of all metric values within a specified interval.

  • Minimum: calculates the minimum value of all metric values within a specified interval.

  • Maximum: calculates the maximum value of all metric values within a specified interval.

Average

Dimensions

array<object>

No

The metric dimensions. You can use this parameter to specify the monitored resources.

object

No

DimensionKey

string

No

The key of the metric dimension.

queue

DimensionValue

string

No

The value of the metric dimension.

testQueue

AlarmOptions

object

No

Definition of alerting properties.

Period

integer

No

The period for aggregating monitoring metric data in a target tracking rule, in seconds. Valid values:

  • 15

  • 60

  • 120

  • 300

  • 900

Note

Default Value: 60.

60

Response elements

Element

Type

Description

Example

object

ScalingRuleAri

string

The unique identifier of the scaling rule.

ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****

RequestId

string

The ID of the request.

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

ScalingRuleId

string

The ID of the scaling rule, which is generated by the system and is globally unique.

asr-bp1dvirgwkoowxk7****

Examples

Success response

JSON format

{
  "ScalingRuleAri": "ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****",
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
  "ScalingRuleId": "asr-bp1dvirgwkoowxk7****"
}

Error codes

See Error Codes for a complete list.

Release notes

See Release Notes for a complete list.