基于指定调整规则触发弹性扩缩容。
接口说明
-
调用该接口前,请确保满足以下条件:
- 伸缩组处于 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:ScaleWithAdjustment | update | *ScalingGroup acs:ess:{#regionId}:{#accountId}:scalinggroup/{#scalinggroupId} |
| 无 |
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
| ScalingGroupId | string | 是 | 伸缩组的 ID。 | asg-j6c1o397427hyjdc**** |
| AdjustmentType | string | 是 | 伸缩活动调整方式,取值范围:
| QuantityChangeInCapacity |
| AdjustmentValue | integer | 是 | 伸缩活动调整值。任何情况下,单次调整的 ECS 实例台数都不能超过 1000,否则会导致调整失败。不同调整方式对应的取值范围:
| 100 |
| MinAdjustmentMagnitude | integer | 否 | 伸缩活动最小调整实例数,仅当 | 1 |
| ClientToken | string | 否 | 用于保证请求的幂等性,防止重复提交请求。由客户端生成该参数值,要保证在不同请求之间唯一,最大值不超过 64 个 ASCII 字符,且该参数值中不能包含非 ASCII 字符。 | 123e4567-e89b-12d3-a456-42665544**** |
| SyncActivity | boolean | 否 | 伸缩活动同步执行开关,仅对具有期望实例数配置项的伸缩组有效。取值范围:
说明
关于期望实例数的更多信息,请参见期望实例数。
默认值:false。 | false |
| Overrides | object | 否 | ECI 类型的伸缩组扩容指定覆写参数。 | |
| Cpu | float | 否 | 实例级别 vCPU 大小。单位:核。 | 2 |
| Memory | float | 否 | 实例级别内存大小。单位:GiB。 | 4 |
| ContainerOverride | array<object> | 否 | 覆写容器列表参数。 | |
| object | 否 | 覆写容器列表参数。 | ||
| Command | array | 否 | 容器启动命令。最多 20 个。每个命令最多包含 256 个字符。 | |
| string | 否 | 容器启动命令。最多 20 个。每个命令最多包含 256 个字符。 | sleep | |
| Memory | float | 否 | 容器的内存大小。单位:GiB。 | 4 |
| Arg | array | 否 | 容器启动命令对应的参数。最多 10 个。 | |
| string | 否 | 容器启动命令对应的参数。最多 10 个。 | arg | |
| Cpu | float | 否 | 容器的 vCPU 大小。单位:核。 | 2 |
| EnvironmentVar | array<object> | 否 | 环境变量的信息列表。 | |
| object | 否 | 环境变量的信息列表。 | ||
| Value | string | 否 | 环境变量值。长度为 0~256 位。 | /usr/local/tomcat |
| Key | string | 否 | 环境变量名。长度为 1~128 个字符。格式要求: | PATH |
| Name | string | 否 | 容器名称。当需要覆写容器参数时,必须指定容器名称,容器名称与伸缩配置中的容器名称相匹配时,方可覆写容器参数。 | container-1 |
| LifecycleHookContext | object | 否 | 生命周期挂钩的上下文信息。 | |
| DisableLifecycleHook | boolean | 否 | 伸缩活动是否禁用所有生命周期挂钩功能。取值范围:
| false |
| IgnoredLifecycleHookIds | array | 否 | 伸缩活动禁用的生命周期挂钩 ID 列表。 | |
| string | 否 | 伸缩活动禁用的生命周期挂钩 ID 列表。 | ash-bp14zolna43z266bq*** | |
| ActivityMetadata | string | 否 | 伸缩活动的元数据。 | {"key":"value"} |
| ExecutionMode | string | 否 | 执行模式。取值范围:
默认为 None。 | PlanOnly |
返回参数
示例
正常返回示例
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 | 错误码 | 错误信息 |
|---|---|---|
| 403 | Forbidden.Forbidden | Operation Forbidden |
访问错误中心查看更多错误码。
变更历史
| 变更时间 | 变更内容概要 | 操作 |
|---|---|---|
| 2025-12-04 | OpenAPI 错误码发生变更 | 查看变更详情 |
| 2025-02-25 | OpenAPI 描述信息更新、OpenAPI 错误码发生变更 | 查看变更详情 |
| 2024-03-13 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 |
| 2023-12-06 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 |
| 2022-06-06 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 |
| HttpCode | 错误码 | 错误信息 | 描述 |
|---|---|---|---|
| 403 | Forbidden.Unauthorized | A required authorization for the specified action is not supplied. | 您并未向弹性伸缩完整授权 OpenAPI 接口。 |
| 400 | IncorrectScalingGroupStatus | The current status of the specified scaling group does not support this action. | 指定伸缩规则所属的伸缩组未处于 Active 状态。 |
| 400 | ScalingActivityInProgress | You cannot delete a scaling group or launch a new scaling activity while there is a scaling activity in progress for the specified scaling group. | 指定伸缩规则所属的伸缩组有伸缩活动正在进行。 |
| 400 | InsufficientBalance | Your account does not have enough balance. | 账号余额不足。 |
| 400 | QuotaExceed.Instance | Living instance quota exceeded. | ECS 实例个数达到上限。 |
| 400 | IncorrectLoadBalancerStatus | The current status of the specified load balancer does not support this action. | 指定伸缩规则所属的伸缩组的负载均衡实例未处于 active 状态。 |
| 400 | IncorrectLoadBalancerHealthCheck | The current health check type of specified load balancer does not support this action. | 指定伸缩规则所属的伸缩组的负载均衡实例未开启健康检查。 |
| 400 | InvalidLoadBalancerId.IncorrectInstanceNetworkType | The network type of the instance in specified load balancer does not support this action. | 指定的负载均衡实例含有的 ECS 实例的网络类型与伸缩组的网络类型不匹配。 |
| 400 | InvalidLoadBalancerId.VPCMismatch | The specified virtual switch and the instance in specified load balancer are not in the same VPC. | 指定的伸缩组的负载均衡实例含有的 ECS 实例与 VSwitchId 不在同一个 VPC 当中。 |
| 400 | IncorrectDBInstanceStatus | The current status of DB instance "XXX" does not support this action. | 指定伸缩规则所属的伸缩组的 RDS 实例未处于 running 状态。 |
| 400 | QuotaExceeded.DBInstanceSecurityIP | Security IP quota exceeded in DB instance "XXX". | 指定伸缩规则所属的伸缩组的 RDS 实例访问白名单的 IP 个数达到上限。 |
| 400 | QuotaExceeded.SecurityGroupInstance | Instance quota exceeded in the specified security group. | 指定的安全组已添加的 ECS 实例个数达到上限。 |
| 400 | IncorrectCapacity.NoChange | To execute the specified scaling rule, the total capacity will not change. | 伸缩规则未造成伸缩组实例数的变化。 |
| 400 | QuotaExceeded.ScalingInstance | Scaling instance quota exceeded. | 弹性伸缩的 ECS 实例使用个数达到上限。 |
| 400 | QuotaExceeded.AfterpayInstance | Living afterpay instance quota exceeded. | 按量付费 ECS 实例的使用个数达到上限。 |
| 400 | ResourceNotAvailable.ECS | The specified region or zone does not offer the specified disk or instance category. | 指定的区域无法创建指定的 ECS 实例类型或磁盘类型。 |
| 400 | ScalingRule.InvalidScalingRuleType | Specific scaling rule type: %s can not be executed. | 无法执行当前类型的伸缩规则。 |
| 400 | InvalidStepAdjustments.NoStepFound | No adjustment step found for a metric value of: %s. | 未找到符合条件的分步执行步骤。 |
| 400 | MissingParameter.MetricValue | Metric value must be specified for StepScalingRule. | 执行分步伸缩规则必须指定指标值。 |
| 400 | MissingParameter.BreachThreshold | Breach threshold must be specified for StepScalingRule. | 执行分步伸缩规则必须指定阈值。 |
| 400 | BreachThresholdBeyondPermitRange | Specific parameter "%s" beyond permit range. | 阈值超过了可选范围。 |
