首页 弹性伸缩 API参考 API参考(2022-02-22) API目录 伸缩组 CreateScalingGroup - 创建一个伸缩组

CreateScalingGroup - 创建一个伸缩组

创建一个伸缩组。

接口说明

伸缩组是具有相同应用场景的ECS实例的集合。

一个地域下支持创建的伸缩组数量和弹性伸缩使用情况有关,请前往配额中心查看伸缩组总数对应的配额值。

伸缩组创建成功后不会立即生效。您需要先调用EnableScalingGroup接口启用伸缩组,伸缩组才能触发伸缩活动和执行伸缩规则。

伸缩组、关联的传统型负载均衡CLB(原SLB)实例和关联的RDS实例必须在同一个地域。更多信息,请参见地域与可用区。

如果您为伸缩组关联了CLB实例,伸缩组会自动将加入伸缩组的ECS实例添加到CLB实例的后端服务器组。您可以指定ECS实例需要加入的服务器组,支持以下两种服务器组:

  • 默认服务器组:用来接收前端请求的ECS实例,如果监听没有设置虚拟服务器组或主备服务器组,默认将请求转发至默认服务器组中的ECS实例。

  • 虚拟服务器组:当您需要将不同的请求转发到不同的后端服务器上,或着需要通过域名和URL进行请求转发时,可以选择使用虚拟服务器组。

说明如果您同时指定了默认服务器组和多个虚拟服务器组,ECS实例会同时添加至这些服务器组中。

ECS实例在加入CLB实例的后端服务器组后,权重默认为50。CLB实例需要满足以下条件:

  • 该CLB实例的状态必须是active,您可以调用DescribeLoadBalancers接口查看指定CLB实例的状态。

  • 该CLB实例配置的所有监听端口必须开启健康检查,否则伸缩组创建失败。

如果您为伸缩组关联了应用型负载均衡ALB服务器组,伸缩组会自动将加入伸缩组的ECS实例添加为ALB服务器组的后端服务器,处理ALB实例分发的访问请求。您可以指定多个ALB服务器组,但服务器组必须与伸缩组属于同一个VPC。更多信息,请参见AttachAlbServerGroups。

如果您为伸缩组关联了RDS实例,伸缩组会自动将加入伸缩组的ECS实例的内网IP添加到RDS实例的访问白名单。RDS实例需要满足以下条件:

  • 该RDS实例的状态必须是Running,您可以调用DescribeDBInstances接口查看指定RDS实例的状态。

  • 该RDS实例访问白名单的IP数不能超过上限值。更多信息,请参见RDS文档设置白名单。

如果伸缩组的MultiAZPolicy设置为COST_OPTIMIZED:

  • 当指定OnDemandBaseCapacity、OnDemandPercentageAboveBaseCapacity和SpotInstancePools参数时,即指定成本优化策略下的实例分配方式,在扩缩容时将优先满足该实例分配方式。

  • 当不指定OnDemandBaseCapacity、OnDemandPercentageAboveBaseCapacity或SpotInstancePools参数时,成本优化策略下将仅按照成本最低的方式进行实例创建。

如果您为伸缩组设置了可传播标签,即Tags.Propagate为true时:

  • 伸缩组上的标签只会传播到新创建的实例上,而不会传播到已经在伸缩组中运行的实例上。

  • 如果您在伸缩配置中指定了实例标签,并且选择将伸缩组的标签传播到该实例,则所有标签都会同时存在。

  • 如果伸缩配置中的标签和伸缩组中的可传播标签指定了相同的标签键,则优先使用伸缩配置中的标签值。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
ess:CreateScalingGroupWrite
  • AutoScaling
    acs:ess:{#regionId}:{#accountId}:scalinggroup/*

请求参数

名称类型必填描述示例值
ScalingGroupNamestring

伸缩组的名称,同一地域下伸缩组名称唯一。

长度为2~64个英文或中文字符,以数字、大小写英文字母或中文开头,可以包含数字、下划线(_)、短划线(-)和半角句号(.)。

默认值为ScalingGroupId的值。

scalinggroup****
LaunchTemplateIdstring

实例启动模板ID,用于指定伸缩组从实例启动模板获取启动配置信息。

lt-m5e3ofjr1zn1aw7****
LaunchTemplateVersionstring

实例启动模板的版本。取值范围:

  • 固定的模板版本号。

  • Default:始终使用模板默认版本。

  • Latest:始终使用模板最新版本。

Default
InstanceIdstring

ECS实例的ID。创建伸缩组时,将从指定的实例获取所需的配置信息,并自动创建伸缩配置。

i-28wt4****
RegionIdstring

伸缩组所属的地域ID。

cn-qingdao
MinSizeinteger

伸缩组内ECS实例台数的最小值,当伸缩组内ECS实例数小于MinSize的值时,弹性伸缩会自动创建ECS实例。

说明MinSize的值必须小于或等于MaxSize的值。
2
MaxSizeinteger

伸缩组内ECS实例台数的最大值,当伸缩组内ECS实例数大于MaxSize的值时,弹性伸缩会自动移出ECS实例。

MaxSize的取值范围和弹性伸缩使用情况有关,请前往配额中心查看单个伸缩组可以设置的组内最大实例数对应的配额值。

如果单个伸缩组可以设置的组内最大实例数对应的配额值为2000,则MaxSize的取值范围为0~2000。

20
DefaultCooldowninteger

一次伸缩活动(添加或移出ECS实例)结束后的一段冷却时间。取值范围:0~86400,单位:秒。

冷却时间内,该伸缩组不执行其它的伸缩活动,仅针对云监控报警任务触发的伸缩活动有效。

默认值:300。

300
LoadBalancerIdsstring

传统型负载均衡CLB(原SLB)实例ID。取值可以是由多台CLB实例ID组成一个JSON数组,ID之间用半角逗号(,)隔开。

单个伸缩组可以关联的CLB总数和弹性伸缩使用情况有关,请前往配额中心查看单个伸缩组可以关联的负载均衡实例总数对应的配额值。

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

RDS实例ID。取值可以是由多台RDS实例ID组成一个JSON数组,ID之间用半角逗号(,)隔开。

单个伸缩组可以关联的RDS实例总数和弹性伸缩使用情况有关,请前往配额中心查看单个伸缩组可以关联的RDS实例总数对应的配额值。

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

指定实例移出策略的筛选策略。取值范围:

  • OldestInstance:移出最早加入伸缩组的ECS实例。
  • NewestInstance:移出最新加入伸缩组的ECS实例。
  • OldestScalingConfiguration:移出最早伸缩配置创建的ECS实例。
  • CustomPolicy:基于自定义缩容策略Function函数移除ECS实例。

OldestScalingConfiguration中提到的伸缩配置泛指组内实例配置信息来源,包括伸缩配置和启动模板。CustomPolicy仅支持设置为首位移除策略,当指定CustomPolicy需同时指定CustomPolicyARN参数。

说明伸缩组移出ECS实例还受伸缩组的扩缩容策略(MultiAZPolicy)影响。更多信息,请参见设置移出实例的组合策略
string

指定实例移出策略的筛选策略。取值范围:

  • OldestInstance:移出最早加入伸缩组的ECS实例。
  • NewestInstance:移出最新加入伸缩组的ECS实例。
  • OldestScalingConfiguration:移出最早伸缩配置创建的ECS实例。
  • CustomPolicy:基于自定义缩容策略Function函数移除ECS实例。

OldestScalingConfiguration中提到的伸缩配置泛指组内实例配置信息来源,包括伸缩配置和启动模板。CustomPolicy仅支持设置为首位移除策略,当指定CustomPolicy需同时指定CustomPolicyARN参数。

说明伸缩组移出ECS实例还受伸缩组的扩缩容策略(MultiAZPolicy)影响。更多信息,请参见设置移出实例的组合策略
OldestScalingConfiguration
VSwitchIdstring

虚拟交换机的ID。指定后,伸缩组的网络类型为专有网络。

说明当伸缩组未指定VSwitchId或VSwitchIds参数时,伸缩组的网络类型默认为经典网络。
vsw-bp14zolna43z266bq****
MultiAZPolicystring

多可用区伸缩组ECS实例扩缩容策略。取值范围:

  • PRIORITY:先指定的虚拟交换机(VSwitchIds)优先级最高。弹性伸缩优先在优先级最高的交换机所在可用区尝试扩缩容,如果无法扩缩容,则自动在下一优先级的交换机所在可用区进行扩缩容。

  • COST_OPTIMIZED:扩容时弹性伸缩按vCPU单价从低到高尝试创建ECS实例,缩容时按vCPU单价从高到低尝试移出ECS实例。当伸缩配置设置了抢占式计费方式的多实例规格时,优先创建对应抢占式实例。您可以继续通过CompensateWithOnDemand参数指定当抢占式实例由于库存等原因无法创建时,是否自动尝试以按量付费的方式创建。

    说明COST_OPTIMIZED仅在伸缩配置设置了多实例规格或者选用了抢占式实例的情况下生效。
  • BALANCE:在伸缩组指定的多可用区之间均匀分配ECS实例。如果由于库存不足等原因可用区之间变得不平衡,您可以通过API RebalanceInstance平衡资源。

默认值:PRIORITY。

PRIORITY
HealthCheckTypestring

伸缩组的健康检查方式。取值范围:

  • NONE:不做健康检查。
  • ECS:对伸缩组内的ECS实例做健康检查。

默认值:ECS。

ECS
ScalingPolicystring

指定伸缩组的回收模式。取值范围:

  • recycle:伸缩组的回收模式为停机回收模式。
  • release:伸缩组的回收模式为释放模式。

ScalingPolicy指定伸缩组的回收模式,但实例被移出伸缩组时的具体动作,由RemoveInstances的RemovePolicy参数决定。

recycle
ClientTokenstring

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。只支持ascii字符,且不能超过64个字符。更多详情,请参见如何保证幂等性

123e4567-e89b-12d3-a456-42665544****
OnDemandBaseCapacityinteger

伸缩组所需要按量实例个数的最小值,取值范围:0~1000。当按量实例个数少于该值时,将优先创建按量实例。

30
OnDemandPercentageAboveBaseCapacityinteger

伸缩组满足最小按量实例数(OnDemandBaseCapacity)要求后,超出的实例中按量实例应占的比例,取值范围:0~100。

20
SpotInstanceRemedyboolean

是否开启补齐抢占式实例的弹性伸缩策略。开启后,当收到抢占式实例将被回收的系统消息时,伸缩组将尝试创建新的实例,替换掉将被回收的抢占式实例。

true
CompensateWithOnDemandboolean

当MultiAZPolicy取值为COST_OPTIMIZED时,如果因价格、库存等原因无法创建足够的抢占式实例,是否允许自动尝试创建按量实例满足ECS实例数量要求。取值范围:

  • true:允许。
  • false:不允许。

默认值:true。

true
SpotInstancePoolsinteger

指定可用实例规格的个数,伸缩组将按成本最低的多个规格均衡创建抢占式实例。取值范围:1~10。

5
DesiredCapacityinteger

伸缩组内ECS实例的期望数量,伸缩组会自动将ECS实例数量维持在期望实例数。取值不得大于MaxSize,且不得小于MinSize。

5
GroupDeletionProtectionboolean

是否开启伸缩组删除保护。取值范围:

  • true:开启伸缩组删除保护,此时不能删除该伸缩组。
  • false:关闭伸缩组删除保护。

默认值:false。

true
GroupTypestring

伸缩组管理的实例类型。取值范围:

  • ECS:伸缩组内管理的伸缩为ECS实例。

  • ECI:伸缩组内管理的伸缩为ECI实例。

默认值:ECS。

ECS
ContainerGroupIdstring

ECI实例ID,即容器组ID。

eci-uf6fonnghi50u374****
VSwitchIdsarray

一台或多台虚拟交换机的ID。如果您使用了VSwitchIds参数,VSwitchId参数将被忽略。指定后,伸缩组的网络类型为专有网络。

指定多台虚拟交换机时:

  • 所属的VPC必须相同。

  • 所属的可用区可以不同。

  • 虚拟交换机的优先级按照数字升序排序,1表示最高优先级。当优先级较高的虚拟交换机所在可用区无法创建ECS实例时,自动选择下一优先级的虚拟交换机创建ECS实例。

说明当伸缩组未指定VSwitchId或VSwitchIds参数时,伸缩组的网络类型默认为经典网络。
string

一台或多台虚拟交换机的ID。如果您使用了VSwitchIds参数,VSwitchId参数将被忽略。指定后,伸缩组的网络类型为专有网络。

指定多台虚拟交换机时:

  • 所属的VPC必须相同。

  • 所属的可用区可以不同。

  • 虚拟交换机的优先级按照数字升序排序,1表示最高优先级。当优先级较高的虚拟交换机所在可用区无法创建ECS实例时,自动选择下一优先级的虚拟交换机创建ECS实例。

说明当伸缩组未指定VSwitchId或VSwitchIds参数时,伸缩组的网络类型默认为经典网络。
vsw-bp14zolna43z266bq****
LifecycleHooksarray

生命周期挂钩信息列表。

object

生命周期挂钩信息列表。

DefaultResultstring

等待状态结束后的下一步动作。取值范围:

  • CONTINUE:继续响应弹性扩张活动或者继续响应弹性收缩活动。

  • ABANDON:直接释放弹性扩张活动创建出来的ECS实例或者直接将弹性收缩活动中的ECS实例从伸缩组移除。

当伸缩组发生弹性收缩活动(SCALE_IN)并触发多个生命周期挂钩时,DefaultResult取值为ABANDON的生命周期挂钩触发的等待状态结束时,会提前结束其它对应的等待状态。其他情况下,下一步动作均以最后一个结束等待状态的下一步动作为准。

默认值:CONTINUE。

CONTINUE
LifecycleHookNamestring

生命周期挂钩名称,指定后不支持修改,未指定时默认与生命周期挂钩ID相同。

lifecyclehook****
LifecycleTransitionstring

生命周期挂钩适用的伸缩活动类型,取值范围:

  • SCALE_OUT:伸缩组弹性扩张活动。

  • SCALE_IN:伸缩组弹性收缩活动。

说明若伸缩组指定生命周期挂钩,此参数必选,其他相关参数可选。
SCALE_OUT
NotificationMetadatastring

伸缩活动的等待状态的固定字符串信息。参数长度不超过4096个字符。弹性伸缩每次推送消息到通知对象时,会同时发送您预先指定的notificationmetadata参数值,便于管理和标记不同类别的通知信息。当您同时指定了notificationarn参数时,notificationmetadata才有效。

Test
NotificationArnstring

生命周期挂钩通知对象标识符,支持消息服务MNS队列或主题,参数取值格式:acs:ess:{region}:{account-id}:{resource-relative-id}。

  • region:伸缩组所在的地域。

  • account-id:阿里云账号ID。

例如:

  • MNS队列:acs:ess:{region}:{account-id}:queue/{queuename}。

  • MNS主题:acs:ess:{region}:{account-id}:topic/{topicname}。

acs:ess:cn-hangzhou:1111111111:queue/queue2
HeartbeatTimeoutinteger

生命周期挂钩为伸缩组活动设置的等待时间,等待状态超时后会执行下一步动作。取值范围:30~21600,单位:秒。

创建了生命周期挂钩后,您可以调用RecordLifecycleActionHeartbeat延长ECS实例的等待时间,也可以调用CompleteLifecycleAction提前结束伸缩活动的等待状态。

默认值:600。

600
VServerGroupsarray

伸缩组关联虚拟服务器组的信息集合。

object

伸缩组关联虚拟服务器组的信息集合。

VServerGroupAttributesarray

后端服务器组属性。

object

后端服务器组属性。

VServerGroupIdstring

虚拟服务器组ID。

rsp-bp1443g77****
Weightinteger

弹性伸缩将ECS实例添加到虚拟服务器组后,ECS实例作为后端服务器的权重。权重越高,ECS实例将被分配到越多的访问请求。如果权重为0,则ECS实例不会收到访问请求。取值范围:0~100。默认值:50。

100
Portinteger

弹性伸缩将ECS实例添加到虚拟服务器组后,ECS实例使用的端口号,取值范围:1~65535。

22
LoadBalancerIdstring

虚拟服务器组所属传统型负载均衡CLB(原SLB)实例的ID。

lb-bp1u7etiogg38yvwz****
Tagsarray

伸缩组的标签信息集合。

object

伸缩组的标签信息集合。

Keystring

伸缩组的标签键。

Department
Valuestring

伸缩组的标签值。

Finance
LaunchTemplateOverridesarray

扩展启动模板的实例规格信息。

object

扩展启动模板的实例规格信息。

InstanceTypestring

当您需要伸缩组按照实例规格容量进行伸缩时,请同时指定本参数和LaunchTemplateOverrides.WeightedCapacity。

本参数用于指定实例规格,会覆盖启动模板中的实例规格。

说明仅当LaunchTemplateId参数指定了启动模板时,本参数生效。

InstanceType的取值范围:在售的ECS实例规格。

ecs.c5.xlarge
WeightedCapacityinteger

当您需要伸缩组按照实例规格容量进行伸缩时,在指定LaunchTemplateOverrides.InstanceType后,再指定本参数。

本参数用于指定实例规格的权重,即实例规格的单台实例在伸缩组中表示的容量大小。权重越大,满足期望容量所需的本实例规格的实例数量越少。

由于每个实例规格的vCPU个数、内存大小等性能指标会有差异,您可以根据自身需求,给不同的实例规格配置不同的权重。

例如:

  • 当前容量:0。

  • 期望容量:6。

  • ecs.c5.xlarge规格容量:4。

为满足期望容量,伸缩组将为用户扩容2台ecs.c5.xlarge实例。

说明扩容时伸缩组的容量不得超过最大容量(MaxSize)与实例规格的最大权重之和。

WeightedCapacity的取值范围:1~500。

4
SpotPriceLimitfloat

本参数用于指定实例启动模板覆盖规格(即LaunchTemplateOverride.InstanceType)的竞价价格上限。

说明仅当LaunchTemplateId参数指定了启动模板时,该参数才生效。
0.025
AlbServerGroupsarray

ALB服务器组的相关信息集合。

object

ALB服务器组的相关信息集合。

AlbServerGroupIdstring

ALB服务器组的ID。

一个伸缩组支持关联的ALB服务器组数量有限,如需查看或手动申请提升配额值,请前往配额中心

sgp-ddwb0y0g6y9bjm****
Weightinteger

弹性伸缩将ECS实例添加到ALB服务器组后,ECS实例作为后端服务器的权重。权重越高,ECS实例将被分配到越多的访问请求。如果权重为0,则ECS实例不会收到访问请求。取值范围:0~100。

100
Portinteger

弹性伸缩将ECS实例添加到ALB服务器组后,ECS实例使用的端口号,取值范围:1~65535。

22
ServerGroupsarray

负载均衡服务器组的相关信息集合。

说明不支持同时在AlbServerGroups和ServerGroups中设置相同的服务器组信息。
object

负载均衡服务器组的相关信息集合。

ServerGroupIdstring

服务器组ID。

sgp-5yc3bd9lfyh*****
Typestring

服务器组类型。取值范围:

  • ALB:表示应用型负载均衡(Application Load Balancer)。
  • NLB:表示网络型负载均衡(Network Load Balancer)。
ALB
Weightinteger

弹性伸缩将ECS实例添加到服务器组后,ECS实例作为后端服务器的权重。取值范围:0~100。

权重越高,ECS实例将被分配到越多的访问请求。如果权重为0,则ECS实例不会收到访问请求。

100
Portinteger

弹性伸缩将ECS实例添加到服务器组后,ECS实例使用的端口号,取值范围:1~65535。

22
AzBalanceboolean

伸缩组的容量是否在多个可用区间均衡分布(仅当MultiAZPolicy参数取值为COMPOSABLE策略时生效),取值范围:

  • true:伸缩组的容量在多个可用区间均衡分布。

  • false:伸缩组的容量不在多个可用区间均衡分布。

默认值:false。

false
AllocationStrategystring

容量分配策略,决定了伸缩组如何选择可用的实例规格类型满足容量。容量分布策略同时对按量和抢占式容量生效(仅当MultiAZPolicy参数取值为COMPOSABLE策略时生效)。取值范围:

  • priority:按照配置的实例规格的顺序创建实例。

  • lowestPrice:按照实例规格单位vCpu价格从低到高创建实例。

默认值:priority。

priority
SpotAllocationStrategystring

抢占式容量分布策略。您可以通过该参数单独指定抢占式容量的分布策略(仅当MultiAZPolicy参数取值为COMPOSABLE策略时生效)。取值范围:

  • priority:按照配置的实例规格的顺序创建实例。

  • lowestPrice:按照实例规格单位vCpu价格从低到高创建实例。

默认值:priority。

lowestPrice
SyncAlarmRuleToCmsboolean
说明该参数暂未开放使用。
false
MaxInstanceLifetimeinteger

实例在伸缩组中存活的最大时间。单位为秒。

取值范围:[86400, Integer.maxValue]。

默认值:null。

null
CustomPolicyARNstring

自定义缩容策略Function函数ARN。仅当RemovalPolicies配置第一个移除策略为CustomPolicy时生效。

acs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name
ResourceGroupIdstring

新创建的伸缩组所属的资源组ID。

说明将新创建的伸缩组归属到指定的资源组中。如果不指定该参数,则归属为默认资源组。
rg-123******

返回参数

名称类型描述示例值
object
RequestIdstring

请求ID。

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

伸缩组ID。

asg-bp14wlu85wrpchm0****

示例

正常返回示例

JSON格式

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

错误码

HTTP status code错误码错误信息
404ResourceNotAvailable.VPCNetworkThe specified zone does not support vpc network or sold out.

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2022-12-22OpenAPI 错误码发生变更
变更项变更内容
错误码OpenAPI 错误码发生变更
    删除错误码:404
阿里云首页 弹性伸缩 相关技术圈