ScaleWithAdjustment - 基于指定调整规则触发弹性扩缩容

更新时间:
复制 MD 格式

基于指定调整规则触发弹性扩缩容。

接口说明

  • 调用该接口前,请确保满足以下条件:

    • 伸缩组处于 Active 状态。
    • 伸缩组内没有执行中的伸缩活动。
  • 当伸缩组没有执行中的伸缩活动时,该接口可以绕过冷却时间(Cooldown)直接执行伸缩活动。

  • 如果伸缩规则需要增加的 ECS 实例数加上当前伸缩组的实例数(Total Capacity)大于最大实例数(MaxSize),则按 Total Capacity=MaxSize 执行伸缩活动。

  • 如果当前伸缩组的实例数(Total Capacity)减去伸缩规则需要减少的 ECS 实例数小于最小实例数(MinSize),则按 Total Capacity=MinSize 执行伸缩活动。

调用该接口返回成功,只是表示弹性伸缩服务接受了该接口的调用请求,可以执行伸缩活动,但不代表伸缩活动能够执行成功。您需要通过返回的ScalingActivityId查看该伸缩活动的执行状态。

调试

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

授权信息

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

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

请求参数

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

伸缩组的 ID。

asg-j6c1o397427hyjdc****
AdjustmentTypestring

伸缩活动调整方式,取值范围:

  • QuantityChangeInCapacity:增加或减少指定数量的 ECS 实例。
  • PercentChangeInCapacity:增加或减少指定比例的 ECS 实例。
  • TotalCapacity:将当前伸缩组的 ECS 实例数量调整到指定数量。
QuantityChangeInCapacity
AdjustmentValueinteger

伸缩活动调整值。任何情况下,单次调整的 ECS 实例台数都不能超过 1000,否则会导致调整失败。不同调整方式对应的取值范围:

  • QuantityChangeInCapacity:-1000~1000。
  • PercentChangeInCapacity:-100~10000。
  • TotalCapacity:0~2000。
100
MinAdjustmentMagnitudeinteger

伸缩活动最小调整实例数,仅当AdjustmentTypePercentChangeInCapacity时生效。

1
ClientTokenstring

用于保证请求的幂等性,防止重复提交请求。由客户端生成该参数值,要保证在不同请求之间唯一,最大值不超过 64 个 ASCII 字符,且该参数值中不能包含非 ASCII 字符。

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

伸缩活动同步执行开关,仅对具有期望实例数配置项的伸缩组有效。取值范围:

  • true:同步流程,即执行伸缩规则时会直接触发伸缩组的扩缩容活动。
  • false:异步流程,即修改伸缩组内的期望实例数时,不会立刻触发伸缩组的实际扩缩容活动,需等待期望实例数变化后,系统自动检测期望实例数与伸缩组内当前实例数不一致,才会触发扩缩容活动。
说明 关于期望实例数的更多信息,请参见期望实例数

默认值:false。

false
Overridesobject

ECI 类型的伸缩组扩容指定覆写参数。

Cpufloat

实例级别 vCPU 大小。单位:核。

2
Memoryfloat

实例级别内存大小。单位:GiB。

4
ContainerOverridearray<object>

覆写容器列表参数。

object

覆写容器列表参数。

Commandarray

容器启动命令。最多 20 个。每个命令最多包含 256 个字符。

string

容器启动命令。最多 20 个。每个命令最多包含 256 个字符。

sleep
Memoryfloat

容器的内存大小。单位:GiB。

4
Argarray

容器启动命令对应的参数。最多 10 个。

string

容器启动命令对应的参数。最多 10 个。

arg
Cpufloat

容器的 vCPU 大小。单位:核。

2
EnvironmentVararray<object>

环境变量的信息列表。

object

环境变量的信息列表。

Valuestring

环境变量值。长度为 0~256 位。

/usr/local/tomcat
Keystring

环境变量名。长度为 1~128 个字符。格式要求:[0-9a-zA-Z],以及下划线(_),不能以数字开头。

PATH
Namestring

容器名称。当需要覆写容器参数时,必须指定容器名称,容器名称与伸缩配置中的容器名称相匹配时,方可覆写容器参数。

container-1
LifecycleHookContextobject

生命周期挂钩的上下文信息。

DisableLifecycleHookboolean

伸缩活动是否禁用所有生命周期挂钩功能。取值范围:

  • true:禁用。
  • false:不禁用。
false
IgnoredLifecycleHookIdsarray

伸缩活动禁用的生命周期挂钩 ID 列表。

string

伸缩活动禁用的生命周期挂钩 ID 列表。

ash-bp14zolna43z266bq***
ActivityMetadatastring

伸缩活动的元数据。

{"key":"value"}
ExecutionModestring

执行模式。取值范围:

  • None:未指定,正常扩缩容。
  • PlanOnly:不触发扩缩容,仅执行弹性规划,在 PlanResult 中返回规划的结果,包括实例规格、可用区 ID、付费类型和创建的实例数量等信息。

默认为 None。

PlanOnly

返回参数

名称类型描述示例值
object

基于指定调整规则触发弹性扩缩容返回参数。

ScalingActivityIdstring

伸缩活动的 ID。

asa-bp175o6f6ego3r2j****
RequestIdstring

请求 ID。

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

伸缩活动的类型。

ActivityTypeCapacityChange时,表示返回值ScalingActivityId对应伸缩活动仅修改伸缩组期望实例数,没有立刻执行扩缩。

适用范围:期望实例数类型的伸缩组。

CapacityChange
PlanResultobject

当 ExecutionMode 为 PlanOnly 时,返回的弹性规划的结果。

ResourceAllocationsarray<object>

弹性规划结果中的资源分配信息。

resourceAllocationModelsobject
ZoneIdstring

可用区 ID。

cn-beijing-g
InstanceTypestring

实例规格。

ecs.u1-c1m8.large
SpotStrategystring

实例的抢占策略。取值范围:

  • NoSpot:正常按量付费实例。
  • SpotWithPriceLimit:设置上限价格的抢占式实例。
  • SpotAsPriceGo:系统自动出价,跟随当前市场实际价格的抢占式实例。
NoSpot
Amountinteger

实例数量。

1
InstanceChargeTypestring

付费类型,返回值如下:

  • Prepaid:包年包月。
  • Postpaid:按量付费。
Postpaid

示例

正常返回示例

JSON格式

{
  "ScalingActivityId": "asa-bp175o6f6ego3r2j****",
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
  "ActivityType": "CapacityChange",
  "PlanResult": {
    "ResourceAllocations": [
      {
        "ZoneId": "cn-beijing-g",
        "InstanceType": "ecs.u1-c1m8.large",
        "SpotStrategy": "NoSpot",
        "Amount": 1,
        "InstanceChargeType": "Postpaid"
      }
    ]
  }
}

错误码

HTTP status code错误码错误信息
403Forbidden.ForbiddenOperation Forbidden

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

变更历史

变更时间变更内容概要操作
2025-12-04OpenAPI 错误码发生变更查看变更详情
2025-02-25OpenAPI 描述信息更新、OpenAPI 错误码发生变更查看变更详情
2024-03-13OpenAPI 错误码发生变更、OpenAPI 入参发生变更查看变更详情
2023-12-06OpenAPI 错误码发生变更、OpenAPI 入参发生变更查看变更详情
2022-06-06OpenAPI 错误码发生变更、OpenAPI 入参发生变更查看变更详情
HttpCode错误码错误信息描述
403Forbidden.UnauthorizedA required authorization for the specified action is not supplied.您并未向弹性伸缩完整授权 OpenAPI 接口。
400IncorrectScalingGroupStatusThe current status of the specified scaling group does not support this action.指定伸缩规则所属的伸缩组未处于 Active 状态。
400ScalingActivityInProgressYou cannot delete a scaling group or launch a new scaling activity while there is a scaling activity in progress for the specified scaling group.指定伸缩规则所属的伸缩组有伸缩活动正在进行。
400InsufficientBalanceYour account does not have enough balance.账号余额不足。
400QuotaExceed.InstanceLiving instance quota exceeded.ECS 实例个数达到上限。
400IncorrectLoadBalancerStatusThe current status of the specified load balancer does not support this action.指定伸缩规则所属的伸缩组的负载均衡实例未处于 active 状态。
400IncorrectLoadBalancerHealthCheckThe current health check type of specified load balancer does not support this action.指定伸缩规则所属的伸缩组的负载均衡实例未开启健康检查。
400InvalidLoadBalancerId.IncorrectInstanceNetworkTypeThe network type of the instance in specified load balancer does not support this action.指定的负载均衡实例含有的 ECS 实例的网络类型与伸缩组的网络类型不匹配。
400InvalidLoadBalancerId.VPCMismatchThe specified virtual switch and the instance in specified load balancer are not in the same VPC.指定的伸缩组的负载均衡实例含有的 ECS 实例与 VSwitchId 不在同一个 VPC 当中。
400IncorrectDBInstanceStatusThe current status of DB instance "XXX" does not support this action.指定伸缩规则所属的伸缩组的 RDS 实例未处于 running 状态。
400QuotaExceeded.DBInstanceSecurityIPSecurity IP quota exceeded in DB instance "XXX".指定伸缩规则所属的伸缩组的 RDS 实例访问白名单的 IP 个数达到上限。
400QuotaExceeded.SecurityGroupInstanceInstance quota exceeded in the specified security group.指定的安全组已添加的 ECS 实例个数达到上限。
400IncorrectCapacity.NoChangeTo execute the specified scaling rule, the total capacity will not change.伸缩规则未造成伸缩组实例数的变化。
400QuotaExceeded.ScalingInstanceScaling instance quota exceeded.弹性伸缩的 ECS 实例使用个数达到上限。
400QuotaExceeded.AfterpayInstanceLiving afterpay instance quota exceeded.按量付费 ECS 实例的使用个数达到上限。
400ResourceNotAvailable.ECSThe specified region or zone does not offer the specified disk or instance category.指定的区域无法创建指定的 ECS 实例类型或磁盘类型。
400ScalingRule.InvalidScalingRuleTypeSpecific scaling rule type: %s can not be executed.无法执行当前类型的伸缩规则。
400InvalidStepAdjustments.NoStepFoundNo adjustment step found for a metric value of: %s.未找到符合条件的分步执行步骤。
400MissingParameter.MetricValueMetric value must be specified for StepScalingRule.执行分步伸缩规则必须指定指标值。
400MissingParameter.BreachThresholdBreach threshold must be specified for StepScalingRule.执行分步伸缩规则必须指定阈值。
400BreachThresholdBeyondPermitRangeSpecific parameter "%s" beyond permit range.阈值超过了可选范围。