全部产品
Search
文档中心

弹性伸缩:ModifyScalingGroup - 修改一个伸缩组

更新时间:Dec 12, 2024

如果您需要根据业务变动需求与策略自动增加或减少指定类型的实例数量,则可以通过配置伸缩组来自动调整您的业务计算能力(即实例数量)。如果当前伸缩组属性不再满足业务需求,则您可以调用API ModifyScalingGroup修改伸缩组属性(例如最大实例数、最小实例数或期望实例数等属性),避免重新创建伸缩组并重新配置相关属性,节省了时间和资源成本。

接口说明

  • 不支持修改以下参数:

    • RegionId

    • LoadBalancerId

    说明 如果需要修改负载均衡实例,请使用 AttachLoadBalancers 和 DetachLoadBalancers 接口。
    • DBInstanceId

    说明 如果需要修改 RDS 实例,请使用 AttachDBInstances 和 DetachDBInstances 接口。
  • 当伸缩组的状态为ActiveInactive时才能调用该接口。

  • 启用新的伸缩配置不会影响通过早前伸缩配置创建并正在运行的 ECS 实例或 ECI 实例。

  • 如果修改了 MaxSize,导致当前伸缩组的 ECS 或 ECI 实例数超过 MaxSize,则伸缩组会自动移出 ECS 实例或 ECI 实例,使得伸缩组的 ECS 或 ECI 实例数等于 MaxSize。

  • 如果伸缩组修改了 MinSize,导致当前伸缩组的 ECS 或 ECI 实例数低于 MinSize,则伸缩组会自动加入 ECS 实例或 ECI 实例,使得伸缩组的 ECS 或 ECI 实例数等于 MinSize。

  • 如果伸缩组设置了 DesiredCapacity 时,修改了 DesiredCapacity,导致当前伸缩组的 ECS 或 ECI 实例数与 DesiredCapacity 不一致,则伸缩组会自动加入或移除 ECS 实例或 ECI 实例,使得伸缩组的 ECS 或 ECI 实例数等于 DesiredCapacity。

调试

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

授权信息

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

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

请求参数

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

待修改伸缩组的 ID。

asg-bp1ffogfdauy0jw0****
ScalingGroupNamestring

伸缩组的名称,同一地域下伸缩组名称唯一。长度为 2~64 个字符,以数字、大小英文字母或中文开头,可以包含数字、下划线(_)、短划线(-)和半角句号(.)。

scalinggroup****
MinSizeinteger

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

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

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

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

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

99
DefaultCooldowninteger

伸缩组默认的冷却时间,仅适用于简单规则。取值范围:0~86400,单位:秒。

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

600
RemovalPoliciesarray

指定移出 ECS 实例的伸缩组策略。取值范围:

  • OldestInstance:移出最早加入伸缩组的 ECS 实例。

  • NewestInstance:移出最新加入伸缩组的 ECS 实例。

  • OldestScalingConfiguration:移出最早伸缩配置创建的 ECS 实例。

string

指定移出 ECS 实例的伸缩组策略。取值范围:

  • OldestInstance:移出最早加入伸缩组的 ECS 实例。

  • NewestInstance:移出最新加入伸缩组的 ECS 实例。

  • OldestScalingConfiguration:移出最早伸缩配置创建的 ECS 实例。

NewestInstance
ActiveScalingConfigurationIdstring

伸缩组内生效的伸缩配置的 ID。

asc-bp17pelvl720x5ub****
HealthCheckTypestring

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

  • NONE:不做健康检查。
  • ECS:对伸缩组内的实例做健康检查(ECS 类型和 ECI 类型的伸缩组均使用本取值开启实例健康检查)。
  • LOAD_BALANCER: 根据负载均衡(暂不支持 CLB 负载均衡类型)健康检查结果判断实例健康状态。 默认值:ECS。
说明 如果需要同时开启实例健康检查和负载均衡健康检查,请使用HealthCheckTypes参数。
ECS
LaunchTemplateIdstring

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

lt-m5e3ofjr1zn1aw7****
LaunchTemplateVersionstring

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

  • 固定的模板版本号。
  • Default:始终使用模板默认版本。
  • Latest:始终使用模板最新版本。
Default
OnDemandBaseCapacityinteger

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

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

30
OnDemandPercentageAboveBaseCapacityinteger

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

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

20
SpotInstanceRemedyboolean

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

true
CompensateWithOnDemandboolean

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

  • true:允许。

  • false:不允许。

true
SpotInstancePoolsinteger

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

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

5
DesiredCapacityinteger

伸缩组内 ECS 实例或 ECI 实例的期望数量,伸缩组会自动将 ECS 实例或 ECI 实例数量维持在期望实例数。取值范围:MaxSize≥期望实例数量≥MinSize。

说明 如果期望实例数功能关闭后又重新开启,则您需要重新设置 DesiredCapacity 值。
5
GroupDeletionProtectionboolean

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

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

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

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

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

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

  • COMPOSABLE:是一种组合策略,您可以根据需要自主组合上述多可用区伸缩组 ECS 实例的扩缩容策略。

PRIORITY
VSwitchIdsarray

一台或多台虚拟交换机的 ID。

只有当伸缩组网络类型为 VPC 时,当前参数才生效。指定虚拟交换机所属的 VPC 必须和伸缩组所属的 VPC 相同。

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

string

一台或多台虚拟交换机的 ID。

只有当伸缩组网络类型为 VPC 时,当前参数才生效。指定虚拟交换机所属的 VPC 必须和伸缩组所属的 VPC 相同。

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

vsw-bp1oo2a7isyrb8igf****
LaunchTemplateOverridesarray<object>

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

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.N.InstanceType)的竞价价格上限。您可以指定 N 个该参数,扩展启动模板支持 N 个实例规格。N 的取值范围:1~10。

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

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

取值范围:0 或[86400, Integer.maxValue]。其中,0 表示清空 MaxInstanceLifetime 设置过的值(即未设置 MaxInstanceLifetime 值)。

默认值:null。

说明 ECI 类型的伸缩组或停机不收费的伸缩组不支持设置该参数。
null
AzBalanceboolean

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

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

默认值:false。

false
AllocationStrategystring

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

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

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

默认值:priority。

priority
SpotAllocationStrategystring

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

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

默认值:priority。

lowestPrice
CustomPolicyARNstring

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

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

伸缩组是否关闭期望实例数功能。取值范围:

  • false:启用期望实例数功能。
  • true:关闭期望实例数功能。
说明 只有伸缩组当前无伸缩活动时,才能将该参数设置为 true(即关闭伸缩组的期望实例数功能),关闭伸缩组的期望实例数功能时伸缩组当前的 DesiredCapacity 属性也会被清空,但伸缩组中当前的实例数量不发生变化。
false
ScalingPolicystring

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

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

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

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

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

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

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

recycle
HealthCheckTypesarray

伸缩组的健康检查方式。

说明 使用此参数可以设置多个值,开启多个健康检查选项。如果设置了 HealthCheckType 参数,则本参数将被忽略。
string

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

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

默认值:ECS。

ECS
StopInstanceTimeoutinteger

缩容流程中等待 ECS 实例停机成功的超时时间,单位为秒。 取值范围:30~240。

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

    容量选项。

    OnDemandBaseCapacityinteger

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

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

    30
    OnDemandPercentageAboveBaseCapacityinteger

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

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

    20
    CompensateWithOnDemandboolean

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

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

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

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

    默认值:false。

    true

    返回参数

    名称类型描述示例值
    object
    RequestIdstring

    请求 ID。

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

    示例

    正常返回示例

    JSON格式

    {
      "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
    }

    错误码

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

    变更历史

    变更时间变更内容概要操作
    2024-12-03OpenAPI 入参发生变更查看变更详情
    2024-10-16OpenAPI 入参发生变更查看变更详情
    2024-02-22OpenAPI 入参发生变更查看变更详情
    2024-02-01OpenAPI 入参发生变更查看变更详情
    2023-10-18OpenAPI 入参发生变更查看变更详情
    2022-12-22API 内部配置变更,不影响调用查看变更详情