文档

ModifyScalingGroup - 修改一个伸缩组

更新时间:

如果您需要根据业务变动需求与策略自动增加或减少指定类型的实例数量,则可以通过配置伸缩组来自动调整您的业务计算能力(即实例数量)。如果当前伸缩组属性不再满足业务需求,则您可以调用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暂无授权信息透出。

请求参数

名称类型必填描述示例值
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:对伸缩组内的 ECS 实例做健康检查。
  • LOAD_BALANCER: 根据负载均衡(暂不支持 CLB 负载均衡类型)健康检查结果判断实例健康状态。
说明 该参数与HealthCheckTypes参数作用相同,您可以根据实际情况进行二选一设置,即如果设置了HealthCheckTypes参数,则HealthCheckType参数将被忽略(非必填项)。
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****
LaunchTemplateOverridesobject []

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

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

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

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

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

  • NONE:不做健康检查。
  • ECS:对伸缩组内的 ECS 实例做健康检查。
  • ECI:对伸缩组内的 ECI 实例做健康检查。
  • LOAD_BALANCER: 根据负载均衡(暂不支持 CLB 负载均衡类型)健康检查结果判断实例健康状态。
说明 该参数与HealthCheckType参数作用相同,您可以根据实际情况进行二选一设置,即如果设置了HealthCheckType参数,则HealthCheckTypes参数将被忽略(非必填项)。
ECS

返回参数

名称类型描述示例值
object
RequestIdstring

请求 ID。

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

示例

正常返回示例

JSON格式

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

错误码

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

变更历史

变更时间变更内容概要操作
2024-02-22OpenAPI 入参发生变更看变更集
变更项变更内容
入参OpenAPI 入参发生变更
    新增入参:ScalingPolicy
2024-02-01OpenAPI 入参发生变更看变更集
变更项变更内容
入参OpenAPI 入参发生变更
    新增入参:HealthCheckTypes
2023-10-18OpenAPI 入参发生变更看变更集
变更项变更内容
入参OpenAPI 入参发生变更
    新增入参:DisableDesiredCapacity
2022-12-22API 内部配置变更,不影响调用看变更集
变更项变更内容
API 内部配置变更,不影响调用
  • 本页导读 (1)