如果您需要根据业务变动需求与策略自动增加或减少指定类型的实例数量,则可以通过配置伸缩组来自动调整您的业务计算能力(即实例数量)。如果当前伸缩组属性不再满足业务需求,则您可以调用API ModifyScalingGroup修改伸缩组属性(例如最大实例数、最小实例数或期望实例数等属性),避免重新创建伸缩组并重新配置相关属性,节省了时间和资源成本。
接口说明
-
不支持修改以下参数:
-
RegionId
-
LoadBalancerId
说明 如果需要修改负载均衡实例,请使用 AttachLoadBalancers 和 DetachLoadBalancers 接口。-
DBInstanceId
说明 如果需要修改 RDS 实例,请使用 AttachDBInstances 和 DetachDBInstances 接口。 -
-
当伸缩组的状态为
Active
或Inactive
时才能调用该接口。 -
启用新的伸缩配置不会影响通过早前伸缩配置创建并正在运行的 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:ModifyScalingGroup | update | *ScalingGroup acs:ess:{#regionId}:{#accountId}:scalinggroup/{#ScalingGroupId} |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
ScalingGroupId | string | 是 | 待修改伸缩组的 ID。 | asg-bp1ffogfdauy0jw0**** |
ScalingGroupName | string | 否 | 伸缩组的名称,同一地域下伸缩组名称唯一。长度为 2~64 个字符,以数字、大小英文字母或中文开头,可以包含数字、下划线(_)、短划线(-)和半角句号(.)。 | scalinggroup**** |
MinSize | integer | 否 | 伸缩组内 ECS 实例或 ECI 实例台数的最小值,当伸缩组内 ECS 或 ECI 实例数小于 MinSize 时,弹性伸缩会自动创建 ECS 实例或 ECI 实例。 说明
MinSize 的值必须小于或等于 MaxSize 的值。
| 1 |
MaxSize | integer | 否 | 伸缩组内 ECS 实例或 ECI 实例台数的最大值,当伸缩组内 ECS 或 ECI 实例数大于 MaxSize 时,弹性伸缩会自动移出 ECS 实例或 ECI 实例。 MaxSize 的取值范围和弹性伸缩使用情况有关,请前往配额中心查看单个伸缩组可以设置的组内最大实例数对应的配额值。 例如,如果单个伸缩组可以设置的组内最大实例数对应的配额值为 2000,则 MaxSize 的取值范围为 0~2000。 | 99 |
DefaultCooldown | integer | 否 | 伸缩组默认的冷却时间,仅适用于简单规则。取值范围:0~86400,单位:秒。 冷却时间内,该伸缩组不执行其他的伸缩活动,仅针对云监控报警任务触发的伸缩活动有效。 | 600 |
RemovalPolicies | array | 否 | 指定移出 ECS 实例的伸缩组策略。取值范围:
| |
string | 否 | 指定移出 ECS 实例的伸缩组策略。取值范围:
| NewestInstance | |
ActiveScalingConfigurationId | string | 否 | 伸缩组内生效的伸缩配置的 ID。 | asc-bp17pelvl720x5ub**** |
HealthCheckType | string | 否 | 伸缩组的健康检查方式。取值范围:
说明
如果需要同时开启实例健康检查和负载均衡健康检查,请使用 HealthCheckTypes 参数。
| ECS |
LaunchTemplateId | string | 否 | 实例启动模板 ID,用于指定伸缩组从实例启动模板获取启动配置信息。 | lt-m5e3ofjr1zn1aw7**** |
LaunchTemplateVersion | string | 否 | 实例启动模板的版本。取值范围:
| Default |
OnDemandBaseCapacity | integer | 否 | 伸缩组所需要按量实例个数的最小值,取值范围:0~1000。当按量实例个数少于该值时,将优先创建按量实例。 当 | 30 |
OnDemandPercentageAboveBaseCapacity | integer | 否 | 伸缩组满足最小按量实例数(OnDemandBaseCapacity)要求后,超出的实例中按量实例应占的比例,取值范围:0~100。 当 | 20 |
SpotInstanceRemedy | boolean | 否 | 是否开启补齐抢占式实例。开启后,当收到抢占式实例将被回收的系统消息时,伸缩组将尝试创建新的实例,替换掉将被回收的抢占式实例。 | true |
CompensateWithOnDemand | boolean | 否 | 当
| true |
SpotInstancePools | integer | 否 | 指定可用实例规格的个数,伸缩组将按成本最低的多个规格均衡创建抢占式实例。取值范围:0~10。 当 | 5 |
DesiredCapacity | integer | 否 | 伸缩组内 ECS 实例或 ECI 实例的期望数量,伸缩组会自动将 ECS 实例或 ECI 实例数量维持在期望实例数。取值范围:MaxSize≥期望实例数量≥MinSize。 说明
如果期望实例数功能关闭后又重新开启,则您需要重新设置 DesiredCapacity 值。
| 5 |
GroupDeletionProtection | boolean | 否 | 是否开启伸缩组删除保护。取值范围:
| true |
MultiAZPolicy | string | 否 | 多可用区伸缩组 ECS 实例扩缩容策略。取值范围:
说明
COST_OPTIMIZED 仅在伸缩配置设置了多实例规格或者选用了抢占式实例的情况下生效。
| PRIORITY |
VSwitchIds | array | 否 | 一台或多台虚拟交换机的 ID。 只有当伸缩组网络类型为 VPC 时,当前参数才生效。指定虚拟交换机所属的 VPC 必须和伸缩组所属的 VPC 相同。 虚拟交换机可以来自多个可用区。虚拟交换机的优先级按照数字升序排序,1 表示最高优先级。当优先级较高的虚拟交换机所在可用区无法创建 ECS 实例时,自动选择下一优先级的虚拟交换机创建 ECS 实例。 | |
string | 否 | 一台或多台虚拟交换机的 ID。 只有当伸缩组网络类型为 VPC 时,当前参数才生效。指定虚拟交换机所属的 VPC 必须和伸缩组所属的 VPC 相同。 虚拟交换机可以来自多个可用区。虚拟交换机的优先级按照数字升序排序,1 表示最高优先级。当优先级较高的虚拟交换机所在可用区无法创建 ECS 实例时,自动选择下一优先级的虚拟交换机创建 ECS 实例。 | vsw-bp1oo2a7isyrb8igf**** | |
LaunchTemplateOverrides | array<object> | 否 | 扩展启动模板的实例规格信息。 | |
object | 否 | 扩展启动模板的实例规格信息。 | ||
InstanceType | string | 否 | 当您需要伸缩组按照实例规格容量进行伸缩时,请同时指定本参数和 LaunchTemplateOverrides.WeightedCapacity。 本参数用于指定实例规格,会覆盖启动模板中的实例规格。 说明
仅当 LaunchTemplateId 参数指定了启动模板时,本参数生效。
InstanceType 的取值范围:在售的 ECS 实例规格。 | ecs.c5.xlarge |
WeightedCapacity | integer | 否 | 当您需要伸缩组按照实例规格容量进行伸缩时,在指定 LaunchTemplateOverrides.InstanceType 后,再指定本参数。两个参数一一对应。 本参数用于指定实例规格的权重,即实例规格的单台实例在伸缩组中表示的容量大小。 权重越大,满足期望容量所需的本实例规格的实例数量越少。 由于每个实例规格的 vCPU 个数、内存大小等性能指标会有差异,您可以根据自身需求,给不同的实例规格配置不同的权重。 例如:
为满足期望容量,伸缩组将为用户扩容 2 台 ecs.c5.xlarge 实例。 说明
扩容时伸缩组的容量不得超过最大容量(MaxSize)与实例规格的最大权重之和。
WeightedCapacity 的取值范围:1~500。 | 4 |
SpotPriceLimit | float | 否 | 本参数用于指定实例启动模板覆盖规格(即 说明
仅当 LaunchTemplateId 参数指定了启动模板时,该参数才生效。
| 0.025 |
MaxInstanceLifetime | integer | 否 | 实例在伸缩组中存活的最大时间。单位为秒。 取值范围:0 或 默认值:null。 说明
ECI 类型的伸缩组或停机不收费的伸缩组不支持设置该参数。
| null |
AzBalance | boolean | 否 | 伸缩组的容量是否在多个可用区间均衡分布(仅当
默认值:false。 | false |
AllocationStrategy | string | 否 | 容量分配策略,决定了伸缩组如何选择可用的实例规格类型满足容量。容量分布策略同时对按量和抢占式容量生效(仅当 MultiAZPolicy 参数取值为 COMPOSABLE 策略时生效)。取值范围:
默认值:priority。 | priority |
SpotAllocationStrategy | string | 否 | 抢占式容量分布策略。您可以通过该参数单独指定抢占式容量的分布策略(仅当
默认值:priority。 | lowestPrice |
CustomPolicyARN | string | 否 | 自定义缩容策略 Function 函数 ARN。仅当 RemovalPolicies 配置第一个移除策略未 CustomPolicy 时生效。 | acs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name |
DisableDesiredCapacity | boolean | 否 | 伸缩组是否关闭期望实例数功能。取值范围:
说明
只有伸缩组当前无伸缩活动时,才能将该参数设置为 true(即关闭伸缩组的期望实例数功能),关闭伸缩组的期望实例数功能时伸缩组当前的 DesiredCapacity 属性也会被清空,但伸缩组中当前的实例数量不发生变化。
| false |
ScalingPolicy | string | 否 | 指定伸缩组的回收模式。取值范围:
ScalingPolicy 指定伸缩组的回收模式,但实例被移出伸缩组时的具体动作,由 RemoveInstances 的 RemovePolicy 参数决定,更多信息,请参见 RemoveInstances 。 | recycle |
HealthCheckTypes | array | 否 | 伸缩组的健康检查方式。 说明
使用此参数可以设置多个值,开启多个健康检查选项。如果设置了 HealthCheckType 参数,则本参数将被忽略。
| |
string | 否 | 伸缩组的健康检查方式列表。取值范围:
默认值:ECS。 | ECS | |
StopInstanceTimeout | integer | 否 | 缩容流程中等待 ECS 实例停机成功的超时时间,单位为秒。 取值范围:30~240。 说明
| 60 |
CapacityOptions | object | 否 | 容量选项。 | |
OnDemandBaseCapacity | integer | 否 | 已有伸缩组内所需要的按量实例数的最小值,当伸缩组内按量实例个数少于该值时,系统将优先创建按量实例。取值范围:0~1000。 当 | 30 |
OnDemandPercentageAboveBaseCapacity | integer | 否 | 伸缩组满足最小按量实例数 当 | 20 |
CompensateWithOnDemand | boolean | 否 | 当
| true |
SpotAutoReplaceOnDemand | boolean | 否 | 当开启
默认值:false。 | true |
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2024-12-03 | OpenAPI 入参发生变更 | 查看变更详情 |
2024-10-16 | OpenAPI 入参发生变更 | 查看变更详情 |
2024-02-22 | OpenAPI 入参发生变更 | 查看变更详情 |
2024-02-01 | OpenAPI 入参发生变更 | 查看变更详情 |
2023-10-18 | OpenAPI 入参发生变更 | 查看变更详情 |
2022-12-22 | API 内部配置变更,不影响调用 | 查看变更详情 |