Creates a scaling group.

Description

A scaling group is a group of Elastic Compute Service (ECS) instances that can be used in similar business scenarios.

You can create only a limited number of scaling groups in a region. Go to Quota Center to check your quota of scaling groups.

A scaling group does not immediately take effect after you create the scaling group. You must call the EnableScalingGroup operation to enable the scaling group. After you enable the scaling group, Auto Scaling can execute scaling rules to trigger scaling activities in the scaling group.

The Classic Load Balancer (CLB) instances and ApsaraDB RDS instances that you want to associate with a scaling group must reside in the same region as the scaling group. CLB instances are formerly known as Server Load Balancer (SLB) instances. For more information, see the Regions and zones topic.

If you associate a CLB instance with a scaling group, Auto Scaling automatically adds ECS instances in the scaling group to the backend server groups of the associated CLB instance. You can specify a server group to which ECS instances can be added. You can add ECS instances to the following types of server groups:

  • Default server group: a group of ECS instances that are used to receive requests. If you do not specify a vServer group or a primary/secondary server group for a listener, requests are forwarded to the ECS instances in the default server group.
  • vServer group: If you want to forward requests to backend servers that are not in the default server group or configure domain name-based or URL-based forwarding rules, you can use vServer groups.
    Note If you specify the default server group and multiple vServer groups at the same time, ECS instances are added to all the specified server groups.

    The default weight of an ECS instance that is added as a backend server of a CLB instance is 50. The CLB instance that you want to associate with your scaling group must meet the following requirements:

  • The CLB instance must be in the Active state. You can call the DescribeLoadBalancers operation to query the status of the CLB instance.
  • The health check feature must be enabled on all listener ports that are configured for the CLB instance. Otherwise, the scaling group cannot be created.

If you associated an Application Load Balancer (ALB) or Network Load Balancer (NLB) server group with a scaling group, Auto Scaling automatically adds ECS instances in the scaling group to the ALB or NLB server group to process requests distributed by the ALB or NLB instance to which the associated server group belongs. You can specify multiple ALB or NLB server groups, but the server groups must belong to the same virtual private cloud (VPC) as the scaling group. For more information, see AttachAlbServerGroups or AttachServerGroups.

If you associated an ApsaraDB RDS instance with a scaling group, Auto Scaling automatically adds the private IP addresses of the ECS instances that are in the scaling group to the IP address whitelist of the ApsaraDB RDS instance. The ApsaraDB RDS instance that you want to associate with your scaling group must meet the following requirements:

  • The ApsaraDB RDS instance must be in the Running state. You can call the DescribeDBInstances operation to query the status of the ApsaraDB RDS instance.
  • The number of IP addresses in the IP address whitelist of the ApsaraDB RDS instance cannot exceed the upper limit. For more information, see the Configure IP address whitelists topic.

If you set the MultiAZPolicy parameter of the scaling group to COST_OPTIMIZED, take note of the following items:

  • You can use the OnDemandBaseCapacity, OnDemandPercentageAboveBaseCapacity, and SpotInstancePools parameters to specify an instance allocation method based on the cost optimization policy. The specified instance allocation method is prioritized during scaling.
  • If you do not specify the OnDemandBaseCapacity, OnDemandPercentageAboveBaseCapacity, or SpotInstancePools parameter, the instance types that are provided at the lowest price are used to create instances based on the cost optimization policy.

If you set the Tag.N.Propagate parameter of the scaling group to true, take note of the following items:

  • Tags that you add to the scaling group cannot be propagated to existing instances in the scaling group. Tags that you add to the scaling group are propagated to only new instances.
  • If you specify instance tags in the scaling configuration that is used to create instances and propagate the tags that you add to the scaling group to the instances, all tags exist at the same time.
  • If the tag key that you specify in a scaling configuration and the tag key that you add to the scaling group of the scaling configuration are the same, the tag value that you specify in the scaling configuration is preferentially used.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.

Request parameters

ParameterTypeRequiredExampleDescription
ActionStringYesCreateScalingGroup

The operation that you want to perform. Set the value to CreateScalingGroup.

ScalingGroupNameStringNoscalinggroup****

The name of the scaling group. The name of each scaling group must be unique in a region. 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.

If you do not specify this parameter, the value of the ScalingGroupId parameter is used.

LaunchTemplateIdStringNolt-m5e3ofjr1zn1aw7****

The ID of the launch template that provides instance configurations for Auto Scaling to create instances.

LaunchTemplateVersionStringNoDefault

The version number of the launch template. Valid values:

  • A fixed template version number.
  • Default: the default template version.
  • Latest: the latest template version.
InstanceIdStringNoi-28wt4****

The ID of an existing ECS instance that provides instance configurations for Auto Scaling to create a scaling configuration.

RegionIdStringYescn-qingdao

The region ID of the scaling group. For more information, see the Regions and zones topic.

MinSizeIntegerYes2

The minimum number of ECS instances that must be contained in the scaling group. If the number of ECS instances in the scaling group is less than the value of the MinSize parameter, Auto Scaling automatically creates ECS instances until the number of instances in the scaling group is equal to the minimum number.

Note The value of the MinSize parameter must be less than or equal to the value of the MaxSize parameter.
MaxSizeIntegerYes20

The maximum number of ECS instances that can be contained in the scaling group. If the number of ECS instances in the scaling group is greater than the value of the MaxSize parameter, Auto Scaling automatically removes ECS instances until the number of instances in the scaling group is equal to the maximum number.

The value range of the MaxSize parameter varies based on the instance quota. You can go to Quota Center to check the maximum number of instances that a scaling group can contain.

For example, if a scaling group can contain up to 2,000 instances, the value range of the MaxSize parameter is 0 to 2000.

DefaultCooldownIntegerNo300

The cooldown period after a scaling activity is complete. Valid values: 0 to 86400. Unit: seconds.

During the cooldown period, Auto Scaling executes only scaling activities that are triggered by CloudMonitor event-triggered tasks.

Default value: 300.

LoadBalancerIdsStringNo["lb-bp1u7etiogg38yvwz****", "lb-bp168cqrux9ai9l7f****", "lb-bp1jv3m9zvj22ufxp****"]

The IDs of the CLB instances that you want to associate with the scaling group. The value can be a JSON array that contains multiple CLB instance IDs. Separate multiple IDs with commas (,).

You can associate only a limited number of CLB instances with a scaling group. Go to Quota Center to check the maximum number of CLB instances that you can associate with a scaling group.

DBInstanceIdsStringNo["rm-bp142f86de0t7****", "rm-bp18l1z42ar4o****", "rm-bp1lqr97h4aqk****"]

The IDs of the ApsaraDB RDS instances that you want to associate with the scaling group. The value can be a JSON array that contains multiple ApsaraDB RDS instance IDs. Separate multiple IDs with commas (,).

You can associate only a limited number of ApsaraDB RDS instances with a scaling group. Go to Quota Center to check the maximum number of ApsaraDB RDS instances that you can associate with a scaling group.

RemovalPolicy.1StringNoOldestScalingConfiguration

The first instance removal policy. You cannot set the RemovalPolicy.1 parameter, the RemovalPolicy.2 parameter, and the RemovalPolicy.3 parameter to the same value.

  • OldestInstance: removes ECS instances that are added at the earliest point in time to the scaling group.
  • NewestInstance: removes ECS instances that are most recently added to the scaling group.
  • OldestScalingConfiguration: removes ECS instances that are created based on the earliest scaling configuration.
  • CustomPolicy: removes ECS instances based on the custom scale-in policy (Function).

The scaling configuration source specified by the OldestScalingConfiguration setting can be a scaling configuration or a launch template. You can specify CustomPolicy only as the value of the RemovalPolicy.1 parameter. If you set the RemovalPolicy.1 parameter to CustomPolicy, you must also specify the CustomPolicyARN parameter.

Note The removal of ECS instances from a scaling group is also affected by the value of the MultiAZPolicy parameter. For more information, see the Configure a combination policy for removing instances topic.
RemovalPolicy.2StringNoOldestInstance

The second instance removal policy. You cannot set the RemovalPolicy.1 parameter, the RemovalPolicy.2 parameter, and the RemovalPolicy.3 parameter to the same value. Valid values:

  • OldestInstance: removes ECS instances that are added at the earliest point in time to the scaling group.
  • NewestInstance: removes ECS instances that are most recently added to the scaling group.
  • OldestScalingConfiguration: removes ECS instances that are created based on the earliest scaling configuration.
Note The removal of ECS instances from a scaling group is also affected by the value of the MultiAZPolicy parameter. For more information, see the Configure a combination policy for removing instances topic.
RemovalPolicy.3StringNoNewestInstance

The third instance removal policy. You cannot set the RemovalPolicy.1 parameter, the RemovalPolicy.2 parameter, and the RemovalPolicy.3 parameter to the same value. Valid values:

  • OldestInstance: removes ECS instances that are added at the earliest point in time to the scaling group.
  • NewestInstance: removes ECS instances that are most recently added to the scaling group.
  • OldestScalingConfiguration: removes ECS instances that are created based on the earliest scaling configuration.
Note The removal of ECS instances from a scaling group is also affected by the value of the MultiAZPolicy parameter. For more information, see the Configure a combination policy for removing instances topic.
VSwitchIdStringNovsw-bp14zolna43z266bq****

The ID of the vSwitch. If you specify the VSwitchId parameter, the network type of the scaling group is VPC.

Note If you do not specify the VSwitchId or VSwitchIds.N parameter, the network type of the scaling group is classic network.
MultiAZPolicyStringNoPRIORITY

The scaling policy for the multi-zone scaling group that contains ECS instances. Valid values:

  • PRIORITY: Auto Scaling scales ECS instances based on the priority of the vSwitch that is specified by the VSwitchIds.N parameter. Auto Scaling preferentially scales instances in the zone where the vSwitch that has the highest priority resides. If the scaling fails, Auto Scaling scales instances in the zone where the vSwitch that has the next highest priority resides.
  • COST_OPTIMIZED: Auto Scaling preferentially creates ECS instances whose vCPUs are provided at the lowest price and removes ECS instances whose vCPUs are provided at the highest price. If preemptible instance types are specified in the scaling configuration, Auto Scaling preferentially creates preemptible instances. You can use the CompensateWithOnDemand parameter to specify whether to automatically create pay-as-you-go instances when preemptible instances cannot be created due to insufficient resources.
    Note The COST_OPTIMIZED setting takes effect only when you specify multiple instance types or when you specify at least one preemptible instance type.
  • BALANCE: Auto Scaling evenly distributes ECS instances across zones that are specified for the scaling group. If ECS instances are unevenly distributed across zones due to insufficient resources, you can call the RebalanceInstance operation to evenly distribute the instances across the zones.
  • COMPOSABLE: You can combine the preceding policies based on your business requirements.

Default value: PRIORITY.

HealthCheckTypeStringNoECS

The health check mode of the scaling group. Valid values:

  • NONE: Auto Scaling does not perform health checks on instances in the scaling group.
  • ECS: Auto Scaling performs health checks on ECS instances in the scaling group.

Default value: ECS.

ScalingPolicyStringNorecycle

The reclaim mode of the scaling group. Valid values:

  • recycle: economical mode
  • release: release mode

ScalingPolicy specifies the reclaim mode of scaling groups. The policy that is used to remove ECS instances from scaling groups is specified by the RemovePolicy parameter of the RemoveInstances operation. For more information, see the RemoveInstances topic.

ClientTokenStringNo123e4567-e89b-12d3-a456-42665544****

The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see How to ensure idempotence.

OnDemandBaseCapacityIntegerNo30

The minimum number of pay-as-you-go instances that must be contained in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is less than the value of this parameter, Auto Scaling preferentially creates pay-as-you-go instances.

If you set the MultiAZPolicy parameter to COMPOSABLE Policy, the default value of this parameter is 0.

OnDemandPercentageAboveBaseCapacityIntegerNo20

The percentage of pay-as-you-go instances in the excess instances when the minimum number of pay-as-you-go instances reaches the requirement. Valid values: 0 to 100.

If you set the MultiAZPolicy parameter to COMPOSABLE Policy, the default value of this parameter is 100.

SpotInstanceRemedyBooleanNotrue

Specifies whether to supplement preemptible instances. If you set this parameter to true, Auto Scaling creates an instance to replace a preemptible instance when Auto Scaling receives a system message which indicates that the preemptible instance is to be reclaimed.

CompensateWithOnDemandBooleanNotrue

Specifies whether to automatically create pay-as-you-go instances to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is available only if you set the MultiAZPolicy parameter to COST_OPTIMIZED. Valid values:

  • true
  • false

Default value: true.

SpotInstancePoolsIntegerNo5

The number of instance types that you want to specify. Auto Scaling evenly creates preemptible instances of multiple instance types that are provided at the lowest price in the scaling group. Valid values: 1 to 10.

If you set the MultiAZPolicy parameter to COMPOSABLE, the default value of this parameter is 2.

DesiredCapacityIntegerNo5

The expected number of ECS instances in the scaling group. Auto Scaling automatically maintains the expected number of ECS instances. The expected number cannot be greater than the value of the MaxSize parameter and cannot be less than the value of the MinSize parameter.

GroupDeletionProtectionBooleanNotrue

Specifies whether to enable deletion protection for the scaling group. Valid values:

  • true: enables deletion protection for the scaling group. This way, the scaling group cannot be deleted.
  • false: disables deletion protection for the scaling group.

Default value: false.

GroupTypeStringNoECS

The type of the instances that are managed by the scaling group. Valid values:

  • ECS: ECS instances
  • ECI: elastic container instances

Default value: ECS.

ContainerGroupIdStringNoeci-uf6fonnghi50u374****

The ID of the elastic container instance.

VSwitchIds.NStringNovsw-bp14zolna43z266bq****

The IDs of vSwitches. If you specify the VSwitchIds.N parameter, the VSwitchId parameter is ignored. If you specify the VSwitchIds.N parameter, the network type of the scaling group is VPC.

If you specify multiple vSwitches, take note of the following items:

  • The vSwitches must belong to the same VPC.
  • The vSwitches can belong to different zones.
  • The vSwitches are sorted in ascending order of priority. The first vSwitch that is specified by the VSwitchIds.N parameter has the highest priority. If Auto Scaling fails to create ECS instances in the zone where the vSwitch that has the highest priority resides, Auto Scaling creates ECS instances in the zone where the vSwitch that has the next highest priority resides.
Note If you do not specify the VSwitchId or VSwitchIds.N parameter, the network type of the scaling group is classic network.
LifecycleHook.N.DefaultResultStringNoCONTINUE

The action that Auto Scaling performs after the lifecycle hook of the scaling group times out. Valid values:

  • CONTINUE: continues to respond to scaling requests.
  • ABANDON: releases ECS instances that are created during scale-outs, or removes ECS instances from the scaling group during scale-ins.

If multiple lifecycle hooks in the scaling group are triggered during a scale-in and you set the LifecycleHook.N.DefaultResult parameter to ABANDON for one of the lifecycle hooks, Auto Scaling immediately performs the action after the lifecycle hook whose LifecycleHook.N.DefaultResult parameter is set to ABANDON times out. In this case, other lifecycle hooks time out ahead of schedule. In other cases, Auto Scaling performs the action only after all lifecycle hooks time out. The action that Auto Scaling performs is determined by the value of the LifecycleHook.N.DefaultResult parameter that you set for the lifecycle hook that last times out.

Default value: CONTINUE.

LifecycleHook.N.LifecycleHookNameStringNolifecyclehook****

The name of the lifecycle hook. After you specify this parameter, you cannot change the name of the lifecycle hook. If you do not specify this parameter, the name of the lifecycle hook is the same as the ID of the lifecycle hook.

LifecycleHook.N.LifecycleTransitionStringNoSCALE_OUT

The type of the scaling activities to which you want to apply the lifecycle hook. Valid values:

  • SCALE_OUT: scale-outs
  • SCALE_IN: scale-ins
Note If you specify lifecycle hooks for the scaling group, the LifecycleHook.N.LifecycleTransition parameter is required.
LifecycleHook.N.NotificationMetadataStringNoTest

The fixed string that you want to include in a notification. When a lifecycle hook takes effect, Auto Scaling sends a notification. The value of this parameter cannot exceed 128 characters in length. Auto Scaling sends the value of the NotificationMetadata parameter together with the notification. This helps you categorize your notifications. If you specify the NotificationMetadata parameter, you must also specify the NotificationArn parameter.

LifecycleHook.N.NotificationArnStringNoacs:ess:cn-hangzhou:1111111111:queue/queue2

The Alibaba Cloud Resource Name (ARN) of the notification method that Auto Scaling uses to send a notification when a lifecycle hook takes effect. This notification method can be a Message Service (MNS) queue or an MNS topic. Specify the value of this parameter in the following format: acs:ess:{region}:{account-id}:{resource-relative-id}.

  • region: the region where the scaling group resides
  • account-id: the ID of the Alibaba Cloud account

Examples:

  • MNS queue: acs:ess:{region}:{account-id}:queue/{queuename}
  • MNS topic: acs:ess:{region}:{account-id}:topic/{topicname}
LifecycleHook.N.HeartbeatTimeoutIntegerNo600

The period of time before the lifecycle hook times out. After the lifecycle hook times out, Auto Scaling performs the action specified by the DefaultResult parameter. Valid values: 30 to 21600. Unit: seconds.

After you create a lifecycle hook, you can call the RecordLifecycleActionHeartbeat operation to prolong the timeout period of the lifecycle hook. You can also call the CompleteLifecycleAction operation to end the timeout period ahead of schedule.

Default value: 600.

VServerGroup.N.VServerGroupAttribute.N.VServerGroupIdStringNorsp-bp1443g77****

The ID of the backend vServer group.

For more information, see the AttachVServerGroups topic.

VServerGroup.N.VServerGroupAttribute.N.WeightIntegerNo100

The weight of an ECS instance after Auto Scaling adds the ECS instance to the backend vServer group as a backend server. If you increase the weight of an ECS instance in a backend vServer group, the number of access requests that are forwarded to the ECS instance increases. If you set the Weight parameter of an ECS instance in a backend vServer group to 0, no access requests are forwarded to the ECS instance. Valid values: 0 to 100. Default value: 50.

For more information, see the AttachVServerGroups topic.

VServerGroup.N.VServerGroupAttribute.N.PortIntegerNo22

The port number that is used by an ECS instance after Auto Scaling adds the ECS instance to the backend vServer group. Valid values: 1 to 65535.

For more information, see the AttachVServerGroups topic.

VServerGroup.N.LoadBalancerIdStringNolb-bp1u7etiogg38yvwz****

The ID of the CLB instance to which the backend vServer group belongs.

For more information, see the AttachVServerGroups topic.

Tag.N.KeyStringNoDepartment

The key of tag N that you want to add to the scaling group.

Tag.N.ValueStringNoFinance

The value of tag N that you want to add to the scaling group.

Tag.N.PropagateBooleanNofalse

Specifies whether to propagate tag N that you want to add to the scaling group. Valid values:

  • true: propagates tag N to instances that are newly created and does not propagate tag N to instances that are already running in the scaling group.
  • false: does not propagate tag N to any instances.

Default value: false.

LaunchTemplateOverride.N.InstanceTypeStringNoecs.c5.xlarge

Instance type N that you want to use to override the instance type that is specified in the launch template. If you want to scale instances in the scaling group based on the weighted capacity of the instances, you must specify the LaunchTemplateOverride.N.InstanceType and LaunchTemplateOverride.N.WeightedCapacity parameters.

You can specify N instance types by using the Extended Configurations feature of the launch template. Valid values of N: 1 to 10.

Note This parameter is available only if you specify the LaunchTemplateId parameter.

For information about the valid values of InstanceType in InstanceTypeOverride.N.InstanceType, see the Overview of instance families topic.

LaunchTemplateOverride.N.WeightedCapacityIntegerNo4

The weight of instance type N. The weight of an instance type specifies the capacity of an instance of the instance type in the scaling group. If you want to scale instances in the scaling group based on the weighted capacity of the instances, you must specify the LaunchTemplateOverride.N.WeightedCapacity parameter after you specify the LaunchTemplateOverride.N.InstanceType parameter. The values of N in the two parameters must be the same.

A higher weight specifies that a smaller number of instances of the specified instance type are required to meet the expected capacity requirement.

Performance metrics, such as the number of vCPUs and the memory size of each instance type, may vary. You can specify different weights for different instance types based on your business requirements.

Example:

  • Current capacity: 0
  • Expected capacity: 6
  • Capacity of ecs.c5.xlarge: 4

To meet the expected capacity requirement, Auto Scaling must create two ecs.c5.xlarge instances.

Note The capacity of the scaling group during a scale-out cannot exceed the sum of the maximum number of instances that is specified by the MaxSize parameter and the maximum weight of the instance types.

Valid values of WeightedCapacity in the InstanceTypeOverride.N.WeightedCapacity parameter: 1 to 500.

LaunchTemplateOverride.N.SpotPriceLimitFloatNo0.025

The maximum bid price of instance type N that is specified by the LaunchTemplateOverride.N.InstanceType parameter. You can specify N instance types by using the Extended Configurations feature of the launch template. Valid values of N: 1 to 10.

Note This parameter is available only if you specify the LaunchTemplateId parameter.
AlbServerGroup.N.AlbServerGroupIdStringNosgp-ddwb0y0g6y9bjm****

The ID of ALB server group N.

N specifies the serial number of the ALB server group. You can associate only a limited number of ALB server groups with a scaling group. Go to Quota Center to check the maximum number of ALB server groups that you can associate with a scaling group.

AlbServerGroup.N.WeightIntegerNo100

The weight of an ECS instance after Auto Scaling adds the ECS instance to ALB server group N as a backend server. If you increase the weight of an ECS instance in ALB server group N, the number of access requests that are forwarded to the ECS instance also increases. If you set the Weight parameter of an ECS instance in ALB server group N to 0, no access requests are forwarded to the ECS instance. Valid values: 0 to 100.

N specifies the serial number of the ALB server group.

AlbServerGroup.N.PortIntegerNo22

The port number that is used by an ECS instance after Auto Scaling adds the ECS instance to ALB server group N. Valid values: 1 to 65535.

N specifies the serial number of the ALB server group.

Note If the N values are the same but the port numbers are different, Auto Scaling associates multiple ports of ALB server group N with the scaling group.
ServerGroup.N.ServerGroupIdStringNosgp-5yc3bd9lfyh*****

The ID of server group N.

ServerGroup.N.TypeStringNoALB

The type of server group N. Valid values:

  • ALB
  • NLB
Note Auto Scaling supports the following types of server groups: ALB server groups and NLB server groups.
ServerGroup.N.WeightIntegerNo100

The weight of an ECS instance after Auto Scaling adds the ECS instance to server group N as a backend server. Valid values: 0 to 100.

If you increase the weight of an ECS instance in server group N, the number of access requests that are forwarded to the ECS instance also increases. If you set the Weight parameter of an ECS instance in server group N to 0, no access requests are forwarded to the ECS instance.

ServerGroup.N.PortIntegerNo22

The port number that is used by an ECS instance in the scaling group after Auto Scaling adds the ECS instance to server group N. Valid values: 1 to 65535.

AzBalanceBooleanNofalse

Specifies whether to evenly distribute instances in the scaling group across multiple zones. This parameter is available only if you set the MultiAZPolicy parameter to COMPOSABLE. Valid values:

  • true
  • false

Default value: false.

AllocationStrategyStringNopriority

The allocation policy of instances. Auto Scaling selects instance types based on the allocation policy to create the required number of instances. The policy can be applied to pay-as-you-go instances and preemptible instances. This parameter is available only if you set the MultiAZPolicy parameter to COMPOSABLE. Valid values:

  • priority: Auto Scaling selects instance types based on the specified orders of the instance types to create the required number of instances.
  • lowestPrice: Auto Scaling selects instance types that have the lowest unit price of vCPUs to create the required number of instances.

Default value: priority.

SpotAllocationStrategyStringNolowestPrice

The allocation policy of preemptible instances. You can use this parameter to individually specify the allocation policy of preemptible instances. This parameter is available only if you set the MultiAZPolicy parameter to COMPOSABLE. Valid values:

  • priority: Auto Scaling selects instance types based on the specified orders of the instance types to create the required number of preemptible instances.
  • lowestPrice: Auto Scaling selects instance types that have the lowest unit price of vCPUs to create the required number of preemptible instances.

Default value: priority.

MaxInstanceLifetimeIntegerNonull

The maximum life span of an instance in the scaling group. Unit: seconds.

Valid values: 86400 to the value of the Integer.maxValue parameter.

Default value: null.

Note You cannot specify this parameter for scaling groups that manage elastic container instances or scaling groups whose ScalingPolicy parameter is set to recycle.
CustomPolicyARNStringNoacs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name

The Alibaba Cloud Resource Name (ARN) of the custom scale-in policy (Function). This parameter is available only if you specify CustomPolicy as the value of the RemovalPolicy.1 parameter.

ResourceGroupIdStringNorg-123****

The ID of the resource group to which you want to add the scaling group.

Note If you specify this parameter, new scaling groups are added to the specified resource group. If you do not specify this parameter, new scaling groups are added to the default resource group.

Response parameters

ParameterTypeExampleDescription
RequestIdString473469C7-AA6F-4DC5-B3DB-A3DC0DE3****

The ID of the request.

ScalingGroupIdStringasg-bp14wlu85wrpchm0****

The ID of the scaling group.

Examples

Sample requests

http(s)://ess.aliyuncs.com/?Action=CreateScalingGroup
&ScalingGroupName=scalinggroup****
&LaunchTemplateId=lt-m5e3ofjr1zn1aw7****
&LaunchTemplateVersion=Default
&InstanceId=i-28wt4****
&RegionId=cn-qingdao
&MinSize=2
&MaxSize=20
&DefaultCooldown=300
&LoadBalancerIds=["lb-bp1u7etiogg38yvwz****", "lb-bp168cqrux9ai9l7f****", "lb-bp1jv3m9zvj22ufxp****"]
&DBInstanceIds=["rm-bp142f86de0t7****", "rm-bp18l1z42ar4o****", "rm-bp1lqr97h4aqk****"]
&RemovalPolicy.1=OldestScalingConfiguration
&RemovalPolicy.2=OldestInstance
&RemovalPolicy.3=NewestInstance
&VSwitchId=vsw-bp14zolna43z266bq****
&MultiAZPolicy=PRIORITY
&HealthCheckType=ECS
&ScalingPolicy=recycle
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&OnDemandBaseCapacity=30
&OnDemandPercentageAboveBaseCapacity=20
&SpotInstanceRemedy=true
&CompensateWithOnDemand=true
&SpotInstancePools=5
&DesiredCapacity=5
&GroupDeletionProtection=true
&GroupType=ECS
&ContainerGroupId=eci-uf6fonnghi50u374****
&VSwitchIds=["vsw-bp14zolna43z266bq****"]
&LifecycleHook=[{"DefaultResult":"CONTINUE","LifecycleHookName":"lifecyclehook****","LifecycleTransition":"SCALE_OUT","NotificationMetadata":"Test","NotificationArn":"acs:ess:cn-hangzhou:1111111111:queue/queue2","HeartbeatTimeout":600}]
&VServerGroup=[{"VServerGroupAttribute":[{"VServerGroupId":"rsp-bp1443g77****","Weight":100,"Port":22}],"LoadBalancerId":"lb-bp1u7etiogg38yvwz****"}]
&Tag=[{"Key":"Department","Value":"Finance","Propagate":false}]
&LaunchTemplateOverride=[{"InstanceType":"ecs.c5.xlarge","WeightedCapacity":4,"SpotPriceLimit":0.025}]
&AlbServerGroup=[{"AlbServerGroupId":"sgp-ddwb0y0g6y9bjm****","Weight":100,"Port":22}]
&ServerGroup=[{"ServerGroupId":"sgp-5yc3bd9lfyh*****","Type":"ALB","Weight":100,"Port":22}]
&AzBalance=false
&AllocationStrategy=priority
&SpotAllocationStrategy=lowestPrice
&CustomPolicyARN=acs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name
&ResourceGroupId=rg-123****
&<Common request parameters>

Sample success responses

XML format

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateScalingGroupResponse>
    <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
    <ScalingGroupId>asg-bp14wlu85wrpchm0****</ScalingGroupId>
</CreateScalingGroupResponse>

JSON format

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
  "ScalingGroupId" : "asg-bp14wlu85wrpchm0****"
}

Error codes

For a list of error codes, see Service error codes.

HTTP status code

Error code

Error message

Description

400

IncorrectDBInstanceStatus

The current status of DB instance "XXX" does not support this action.

The error message returned because the specified ApsaraDB RDS instance is not in the Running state.

400

IncorrectLoadBalancerHealthCheck

The current health check type of specified load balancer does not support this action.

The error message returned because the health check feature is not enabled for the specified CLB instance.

400

IncorrectLoadBalancerStatus

The current status of the specified load balancer does not support this action.

The error message returned because the specified CLB instance is not in the Active state.

400

IncorrectVSwitchStatus

The current status of virtual switch does not support this operation.

The error message returned because the vSwitch is unavailable. In this case, ECS instances cannot be created.

400

InvalidDBInstanceId. RegionMismatch

DB instance "XXX" and the specified scaling group are not in the same Region.

The error message returned because the specified ApsaraDB RDS instance and the scaling group do not reside in the same region.

400

InvalidLoadBalancerId.IncorrectAddressType

The current address type of specified load balancer does not support this action.

The error message returned because the network type of the specified CLB instance is different from the network type of the vSwitch.

400

InvalidLoadBalancerId.IncorrectInstanceNetworkType

The network type of the instance in specified Load Balancer does not support this action.

The error message returned because the network type of a backend vServer of the specified CLB instance is different from the network type of the scaling group.

400

InvalidLoadBalancerId.RegionMismatch

The specified Load Balancer and the specified scaling group are not in the same Region.

The error message returned because the specified CLB instance and the scaling group do not reside in the same region.

400

InvalidLoadBalancerId.VPCMismatch

The specified virtual switch and the instance in specified Load Balancer are not in the same VPC.

The error message returned because the vSwitch and a backend vServer of the associated CLB instance are not in the same VPC.

400

InvalidParameter

The specified value of parameter "ScalingPolicy" is not valid.

The error message returned because the value of the ScalingPolicy parameter is invalid.

400

InvalidParameter.Conflict

The value of parameter &lt;parameter name&gt; and parameter &lt;parameter name&gt; are conflict.

The error message returned because the value of the MinSize parameter is greater than the value of the MaxSize parameter.

400

InvalidScalingGroupName.Duplicate

The specified value of parameter &lt;parameter name&gt; is duplicated.

The error message returned because the specified scaling group name already exists.

400

QuotaExceeded.DBInstanceSecurityIP

Security IP quota exceeded in DB instance "XXX".

The error message returned because the maximum number of IP addresses in the IP address whitelist of the associated ApsaraDB RDS instance has been reached.

400

QuotaExceeded.PrivateIpAddress

Private IP address quota exceeded in the specified virtual switch.

The error message returned because no more private IP addresses are available in the CIDR block of the specified vSwitch.

400

QuotaExceeded.ScalingGroup

Scaling group quota exceeded.

The error message returned because the maximum number of scaling groups has been reached.

400

QuotaExceeded.VPCInstance

Instance quota exceeded in the specified VPC.

The error message returned because the maximum number of instances in the VPC has been reached.

404

InvalidDBInstanceId.NotFound

DB instance "XXX" does not exist.

The error message returned because the specified ApsaraDB RDS instance does not exist.

404

InvalidLoadBalancerId.NotFound

The specified Load Balancer does not exist.

The error message returned because the specified CLB instance does not exist.

404

InvalidRegionId.NotFound

The specified region does not exist.

The error message returned because the specified region does not exist.

404

InvalidVSwitchId.NotFound

The specified virtual switch does not exist.

The error message returned because the specified vSwitch does not exist.

400

LaunchTemplateVersionSet.NotFound

The specific version of launch template is not exist.

The error message returned because the specified version of the launch template does not exist.

400

LaunchTemplateSet.NotFound

The specified launch template set is not found.

The error message returned because the specified launch template does not exist.

400

TemplateMissingParameter.ImageId

The input parameter "ImageId" that is mandatory for processing this request is not supplied.

The error message returned because the ImageId parameter that is required for the launch template is not specified.

400

TemplateMissingParameter.InstanceTypes

The input parameter "InstanceTypes" that is mandatory for processing this request is not supplied.

The error message returned because the InstanceTypes parameter that is required for the launch template is not specified.

400

TemplateMissingParameter.SecurityGroup

The input parameter "SecurityGroup" that is mandatory for processing this request is not supplied.

The error message returned because the SecurityGroup parameter that is required for the launch template is not specified.

400

TemplateVersion.NotNumber

The input parameter "LaunchTemplateVersion" is supposed to be a string representing the version number.

The error message returned because the fixed version number that is specified for the LaunchTemplateVersion parameter contains non-digit characters.

400

AlbServerGroup.NotExist

The ServerGroup "%s" do(es) not exist.

The error message returned because the specified ALB server group does not exist within the Alibaba Cloud account.