全部产品
Search
文档中心

弹性伸缩:CreateScalingGroup

更新时间:Dec 05, 2024

如果您需要根据业务变动需求与策略自动增加或减少指定类型的实例数量,则可以通过调用API CreateScalingGroup创建伸缩组来自动调整您的业务计算能力(即实例数量)。

接口说明

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

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

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

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

如果您为伸缩组关联了CLB实例,伸缩组会自动将加入伸缩组的ECS实例添加到CLB实例的后端服务器组。您可以指定ECS实例需要加入的服务器组,支持默认服务器组和虚拟服务器,具体说明如下:

说明 如果您同时指定了默认服务器组和多个虚拟服务器组,ECS实例会同时添加至这些服务器组中。
  • 默认服务器组:用来接收前端请求的ECS实例,如果监听没有设置虚拟服务器组或主备服务器组,默认将请求转发至默认服务器组中的ECS实例。
  • 虚拟服务器组:当您需要将不同的请求转发到不同的后端服务器上,或着需要通过域名和URL进行请求转发时,可以选择使用虚拟服务器组。

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

  • 该CLB实例的状态必须是active,您可以调用DescribeLoadBalancers接口查看指定CLB实例的状态。
  • 该CLB实例配置的所有监听端口必须开启健康检查,否则伸缩组创建失败。

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

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

  • 该RDS实例的状态必须是Running,您可以调用DescribeDBInstances接口查看指定RDS实例的状态。
  • 该RDS实例访问白名单的IP数不能超过上限值。更多信息,请参见RDS文档设置白名单

如果伸缩组的MultiAZPolicy设置为COST_OPTIMIZED

  • 当指定OnDemandBaseCapacity、OnDemandPercentageAboveBaseCapacity和SpotInstancePools参数时,即指定成本优化策略下的实例分配方式,在扩缩容时将优先满足该实例分配方式。
  • 当不指定OnDemandBaseCapacity、OnDemandPercentageAboveBaseCapacity或SpotInstancePools参数时,成本优化策略下将仅按照成本最低的方式进行实例创建。

如果您为伸缩组设置了可传播标签,即Tag.N.Propagatetrue时:

  • 伸缩组上的标签只会传播到新创建的实例上,而不会传播到已经在伸缩组中运行的实例上。
  • 如果您在伸缩配置中指定了实例标签,并且选择将伸缩组的标签传播到该实例,则所有标签都会同时存在。
  • 如果伸缩配置中的标签和伸缩组中的可传播标签指定了相同的标签键,则优先使用伸缩配置中的标签值。

调试

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

请求参数

名称

类型

是否必选

示例值

描述

Action String CreateScalingGroup

系统规定参数。取值:CreateScalingGroup

ScalingGroupName String scalinggroup****

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

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

默认值为ScalingGroupId的值。

LaunchTemplateId String lt-m5e3ofjr1zn1aw7****

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

LaunchTemplateVersion String Default

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

  • 固定的模板版本号。
  • Default:始终使用模板默认版本。
  • Latest:始终使用模板最新版本。
InstanceId String i-28wt4****

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

RegionId String cn-qingdao

伸缩组所属的地域ID。更多信息,请参见地域与可用区

MinSize Integer 2

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

说明 MinSize的值必须小于或等于MaxSize的值。
MaxSize Integer 20

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

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

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

DefaultCooldown Integer 300

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

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

默认值:300。

LoadBalancerIds String ["lb-bp1u7etiogg38yvwz****", "lb-bp168cqrux9ai9l7f****", "lb-bp1jv3m9zvj22ufxp****"]

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

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

DBInstanceIds String ["rm-bp142f86de0t7****", "rm-bp18l1z42ar4o****", "rm-bp1lqr97h4aqk****"]

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

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

RemovalPolicy.1 String OldestScalingConfiguration

指定实例移出策略的第一段筛选策略。不允许与RemovalPolicy.2和RemovalPolicy.3取值相同。取值范围:

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

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

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

指定实例移出策略的第二段筛选策略,不允许与RemovalPolicy.1和RemovalPolicy.3取值相同。取值范围:

  • OldestInstance:移出最早加入伸缩组的ECS实例。
  • NewestInstance:移出最新加入伸缩组的ECS实例。
  • OldestScalingConfiguration:移出最早伸缩配置创建的ECS实例。
说明 伸缩组移出ECS实例还受伸缩组的扩缩容策略(MultiAZPolicy)影响。更多信息,请参见设置移出实例的组合策略
RemovalPolicy.3 String NewestInstance

指定实例移出策略的第三段筛选策略,不允许与RemovalPolicy.1和RemovalPolicy.2取值相同。取值范围:

  • OldestInstance:移出最早加入伸缩组的ECS实例。
  • NewestInstance:移出最新加入伸缩组的ECS实例。
  • OldestScalingConfiguration:移出最早伸缩配置创建的ECS实例。
说明 伸缩组移出ECS实例还受伸缩组的扩缩容策略(MultiAZPolicy)影响。更多信息,请参见设置移出实例的组合策略
VSwitchId String vsw-bp14zolna43z266bq****

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

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

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

  • PRIORITY:先指定的虚拟交换机(VSwitchIds.N)优先级最高。弹性伸缩优先在优先级最高的交换机所在可用区尝试扩缩容,如果无法扩缩容,则自动在下一优先级的交换机所在可用区进行扩缩容。
  • COST_OPTIMIZED:扩容时弹性伸缩按vCPU单价从低到高尝试创建ECS实例,缩容时按vCPU单价从高到低尝试移出ECS实例。当伸缩配置设置了抢占式计费方式的多实例规格时,优先创建对应抢占式实例。您可以继续通过CompensateWithOnDemand参数指定当抢占式实例由于库存等原因无法创建时,是否自动尝试以按量付费的方式创建。

    说明 COST_OPTIMIZED仅在伸缩配置设置了多实例规格或者选用了抢占式实例的情况下生效。

  • BALANCE:在伸缩组指定的多可用区之间均匀分配ECS实例。如果由于库存不足等原因可用区之间变得不平衡,您可以通过API RebalanceInstance平衡资源。
  • COMPOSABLE:是一种组合策略,您可以根据需要自主组合上述多可用区伸缩组ECS实例的扩缩容策略。或者进一步指定参数,对伸缩组的容量进行更精细地控制。

默认值:PRIORITY。

HealthCheckType String ECS

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

  • NONE:不做健康检查。
  • ECS:对伸缩组内的实例做健康检查(ECS类型和ECI类型的伸缩组均使用本取值开启实例健康检查)。
  • LOAD_BALANCER: 根据负载均衡(暂不支持CLB负载均衡类型)健康检查结果判断实例健康状态。

默认值:ECS。

说明 如果需要同时开启实例健康检查和负载均衡健康检查,请使用HealthCheckTypes参数。
ScalingPolicy String recycle

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

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

    说明 选择forcerelease后,在弹性收缩活动中系统会强制释放运行中(Running)的实例。强制释放实例相当于断电操作,会导致该实例内存以及存储中的临时数据被擦除,数据无法恢复,请您谨慎选择。

  • forcerecycle:伸缩组的回收模式为强制停机回收模式。

    说明 选择forcerecycle后,在弹性收缩活动中系统会强制关机运行中(Running)的实例。强制关机相当于断电操作,会导致该实例内存以及存储中的临时数据被擦除,数据无法恢复,请您谨慎选择。

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

ClientToken String 123e4567-e89b-12d3-a456-42665544****

保证请求幂等性。

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

OnDemandBaseCapacity Integer 30

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

MultiAZPolicy参数取值为COMPOSABLE策略时,默认值为0。

OnDemandPercentageAboveBaseCapacity Integer 20

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

MultiAZPolicy参数取值为COMPOSABLE策略时,默认值为100。

SpotInstanceRemedy Boolean true

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

CompensateWithOnDemand Boolean true

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

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

默认值:true。

SpotInstancePools Integer 5

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

MultiAZPolicy参数取值为COMPOSABLE策略时,默认值为2。

DesiredCapacity Integer 5

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

GroupDeletionProtection Boolean true

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

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

默认值:false。

GroupType String ECS

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

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

默认值:ECS。

ContainerGroupId String eci-uf6fonnghi50u374****

ECI实例ID,即容器组ID。

VSwitchIds.N String vsw-bp14zolna43z266bq****

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

指定多台虚拟交换机时:

  • 所属的VPC必须相同。
  • 所属的可用区可以不同。
  • 虚拟交换机的优先级按照数字升序排序,1表示最高优先级。当优先级较高的虚拟交换机所在可用区无法创建ECS实例时,自动选择下一优先级的虚拟交换机创建ECS实例。
说明 当伸缩组未指定VSwitchId或VSwitchIds.N参数时,伸缩组的网络类型默认为经典网络。
LifecycleHook.N.DefaultResult String CONTINUE

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

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

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

默认值:CONTINUE。

LifecycleHook.N.LifecycleHookName String lifecyclehook****

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

LifecycleHook.N.LifecycleTransition String SCALE_OUT

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

  • SCALE_OUT:伸缩组弹性扩张活动。
  • SCALE_IN:伸缩组弹性收缩活动。
说明 若伸缩组指定生命周期挂钩,此参数必选,其他相关参数可选。
LifecycleHook.N.NotificationMetadata String Test

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

LifecycleHook.N.NotificationArn String acs:ess:cn-hangzhou:1111111111:queue/queue2

生命周期挂钩通知对象标识符,支持轻量消息队列(原 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}。
LifecycleHook.N.HeartbeatTimeout Integer 600

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

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

默认值:600。

VServerGroup.N.VServerGroupAttribute.N.VServerGroupId String rsp-bp1443g77****

虚拟服务器组ID。

更多信息,请参见AttachVServerGroups

VServerGroup.N.VServerGroupAttribute.N.Weight Integer 100

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

更多信息,请参见AttachVServerGroups

VServerGroup.N.VServerGroupAttribute.N.Port Integer 22

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

更多信息,请参见AttachVServerGroups

VServerGroup.N.LoadBalancerId String lb-bp1u7etiogg38yvwz****

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

更多信息,请参见AttachVServerGroups

Tag.N.Key String Department

伸缩组的标签键。

Tag.N.Value String Finance

伸缩组的标签值。

Tag.N.Propagate Boolean false

标识该标签是否为可传播标签,取值范围:

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

默认值:false。

LaunchTemplateOverride.N.InstanceType String ecs.c5.xlarge

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

本参数用于指定实例规格,会覆盖启动模板中的实例规格。您可以指定N个本参数,扩展启动模板支持N个实例规格。N的取值范围:1~10。

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

InstanceType的取值范围:在售的ECS实例规格,请参见实例规格族

LaunchTemplateOverride.N.WeightedCapacity Integer 4

当您需要伸缩组按照实例规格容量进行伸缩时,在指定LaunchTemplateOverride.N.InstanceType后,再指定本参数。两个参数一一对应,N需要保持一致。

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

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

例如:

  • 当前容量:0。
  • 期望容量:6。
  • ecs.c5.xlarge规格容量:4。

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

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

WeightedCapacity的取值范围:1~500。

LaunchTemplateOverride.N.SpotPriceLimit Float 0.025

本参数用于指定实例启动模板覆盖规格(即LaunchTemplateOverride.N.InstanceType)的竞价价格上限。您可以指定N个该参数,扩展启动模板支持N个实例规格。N的取值范围:1~10。

说明 仅当LaunchTemplateId参数指定了启动模板时,该参数才生效。
AlbServerGroup.N.AlbServerGroupId String sgp-ddwb0y0g6y9bjm****

ALB服务器组ID。

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

AlbServerGroup.N.Weight Integer 100

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

N为ALB服务器组的编号。

AlbServerGroup.N.Port Integer 22

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

N为ALB服务器组的编号。

说明 如果N相同,Port不同,系统会默认向伸缩组关联多个不同Port的该ALB服务器组。
ServerGroup.N.ServerGroupId String sgp-5yc3bd9lfyh*****

服务器组的ID。

ServerGroup.N.Type String ALB

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

  • ALB:表示应用型负载均衡(Application Load Balancer)。
  • NLB:表示网络型负载均衡(Network Load Balancer)。
ServerGroup.N.Weight Integer 100

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

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

ServerGroup.N.Port Integer 22

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

AzBalance Boolean false

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

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

默认值:false。

AllocationStrategy String priority

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

  • priority:按照配置的实例规格的顺序创建实例。
  • lowestPrice:按照实例规格单位vCpu价格从低到高创建实例。

默认值:priority。

SpotAllocationStrategy String lowestPrice

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

  • priority:按照配置的实例规格的顺序创建实例。
  • lowestPrice:按照实例规格单位vCpu价格从低到高创建实例。

默认值:priority。

MaxInstanceLifetime Integer null

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

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

默认值:null。

说明 ECI类型的伸缩组或停机不收费的伸缩组不支持设置该参数。
CustomPolicyARN String acs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name

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

ResourceGroupId String rg-123****

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

说明 将新创建的伸缩组归属到指定的资源组中。如果不指定该参数,则归属为默认资源组。
LoadBalancerConfig.N.LoadBalancerId String 147b46d767c-cn-qingdao-cm5****

负载均衡CLB(原SLB)实例的ID。

LoadBalancerConfig.N.Weight Integer 10

弹性伸缩将实例添加到负载均衡CLB(原SLB)服务器组后,实例作为后端服务器的权重。权重越高,实例将被分配到越多的访问请求。如果权重为0,则实例不会收到访问请求。

取值范围:0~100。

HealthCheckTypes.N String ECS

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

  • NONE:不做健康检查。
  • ECS:对伸缩组内的实例做健康检查(ECS类型和ECI类型的伸缩组均使用本取值开启实例健康检查)。
  • LOAD_BALANCER: 根据负载均衡(暂不支持负载均衡CLB类型)健康检查结果判断实例健康状态。

默认值:ECS。

DBInstance.N.DBInstanceId String rm-m5eqju85s45mu0***

数据库实例ID。

DBInstance.N.Type String RDS

数据库类型。取值范围:

  • RDS。
  • Redis。
  • MongoDB。

默认值:RDS。

DBInstance.N.AttachMode String SecurityIp

伸缩组与数据库关联方式。取值范围:

  • SecurityIp :修改IP白名单模式,通过将扩容实例自动添加到数据库IP白名单(目前仅RDS数据库支持)。
  • SecurityGroup:安全组模式,通过将伸缩配置安全组添加至数据库安全组白名单,实现安全组下实例数据库访问。
StopInstanceTimeout Integer 60

缩容流程中等待ECS实例停机成功的超时时间,单位为秒。

取值范围:30~240。

说明
  • 该参数仅在 ScalingPolicy = release 模式下的缩容流程里生效。
  • 如果设置了该参数,系统会最长等待StopInstanceTimeout时间将实例停机成功,超时后无论实例是否成功停机都会继续缩容。
  • 如果没有设置该参数,系统会长时间等待实例停机成功,只有实例停机成功后才继续缩容,停机失败时,缩容流程会回滚,缩容失败。
CapacityOptions.OnDemandBaseCapacity Integer 30

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

MultiAZPolicy参数取值为COMPOSABLE策略时,默认值为0。

CapacityOptions.OnDemandPercentageAboveBaseCapacity Integer 20

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

MultiAZPolicy参数取值为COMPOSABLE策略时,默认值为100。

CapacityOptions.CompensateWithOnDemand Boolean true

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

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

默认值:true。

CapacityOptions.SpotAutoReplaceOnDemand Boolean false

当开启CompensateWithOnDemand后,如果按量比例超过OnDemandPercentageAboveBaseCapacity比例时,会尝试使用spot替换按量容量。常见场景CompensateWithOnDemand因Spot库存或价格原因导致Spot降级按量实例,为避免按量实例长时间存在,尝试使用Spot替换多余的按量容量。取值范围:

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

默认值:false。

返回数据

名称

类型

示例值

描述

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

请求ID。

ScalingGroupId String asg-bp14wlu85wrpchm0****

伸缩组ID。

示例

请求示例

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****
&LoadBalancerConfig=[{"LoadBalancerId":"147b46d767c-cn-qingdao-cm5****","Weight":10}]
&HealthCheckTypes=["ECS"]
&DBInstance=[{"DBInstanceId":"rm-m5eqju85s45mu0***","Type":"RDS","AttachMode":"SecurityIp"}]
&StopInstanceTimeout=60
&CapacityOptions={"OnDemandBaseCapacity":30,"OnDemandPercentageAboveBaseCapacity":20,"CompensateWithOnDemand":true,"SpotAutoReplaceOnDemand":false}
&公共请求参数

正常返回示例

XML格式

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

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

JSON格式

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

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

错误码

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

HttpCode

错误码

错误信息

描述

400

IncorrectDBInstanceStatus

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

指定RDS实例的状态必须是Running。

400

IncorrectLoadBalancerHealthCheck

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

指定的CLB实例必须开启健康检查。

400

IncorrectLoadBalancerStatus

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

指定CLB实例的状态必须是active。

400

IncorrectVSwitchStatus

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

虚拟交换机不可用,无法创建ECS实例。

400

InvalidDBInstanceId. RegionMismatch

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

指定的RDS实例与伸缩组必须在同一地域。

400

InvalidLoadBalancerId.IncorrectAddressType

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

指定虚拟交换机后,CLB实例为私网类型。

400

InvalidLoadBalancerId.IncorrectInstanceNetworkType

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

指定的CLB实例内搭载的ECS实例的网络类型与伸缩组的网络类型必须一致。

400

InvalidLoadBalancerId.RegionMismatch

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

指定的CLB实例与伸缩组必须在同一地域。

400

InvalidLoadBalancerId.VPCMismatch

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

伸缩组内的CLB实例搭载的ECS实例与虚拟交换机应该在同一个VPC中。

400

InvalidParameter

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

指定的回收模式参数不存在。

400

InvalidParameter.Conflict

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

指定的MinSize不能大于MaxSize。

400

InvalidScalingGroupName.Duplicate

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

伸缩组名已存在。

400

QuotaExceeded.DBInstanceSecurityIP

Security IP quota exceeded in DB instance "XXX".

指定的RDS实例访问白名单的IP个数达到上限。

400

QuotaExceeded.PrivateIpAddress

Private IP address quota exceeded in the specified virtual switch.

虚拟交换机无法再分配多余的私有IP地址。

400

QuotaExceeded.ScalingGroup

Scaling group quota exceeded.

用户的伸缩组使用个数达到上限。

400

QuotaExceeded.VPCInstance

Instance quota exceeded in the specified VPC.

该VPC内的实例数超过数量限制。

404

InvalidDBInstanceId.NotFound

DB instance "XXX" does not exist.

指定的RDS实例不存在。

404

InvalidLoadBalancerId.NotFound

The specified Load Balancer does not exist.

指定的CLB实例不存在。

404

InvalidRegionId.NotFound

The specified region does not exist.

指定的地域不存在。

404

InvalidVSwitchId.NotFound

The specified virtual switch does not exist.

指定的虚拟交换机不存在。

400

LaunchTemplateVersionSet.NotFound

The specific version of launch template is not exist.

实例启动模板指定版本不存在。

400

LaunchTemplateSet.NotFound

The specified launch template set is not found.

指定实例启动模板不存在。

400

TemplateMissingParameter.ImageId

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

实例启动模板指定版本缺少镜像信息。

400

TemplateMissingParameter.InstanceTypes

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

实例启动模板指定版本缺少实例规格信息。

400

TemplateMissingParameter.SecurityGroup

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

实例启动模板指定版本缺少安全组信息。

400

TemplateVersion.NotNumber

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

指定实例启动模板固定版本号为非数字。

400

AlbServerGroup.NotExist

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

账号下不存在指定的ALB服务器组。