伸缩规则的作用由伸缩规则的类型来决定,可用于触发伸缩活动或者智能设置伸缩组边界值。根据不同业务需求,通过调用API CreateScalingRule创建不同类型的伸缩规则,例如,业务需要只能设置伸缩组边界值,建议您选择预测规则类型。
接口说明
伸缩规则定义了具体的扩张或收缩操作,例如加入或移出 N 台实例。如果执行伸缩规则会造成伸缩组的 ECS 或 ECI 实例数低于 MinSize 或高于 MaxSize,则弹性伸缩会自动调整需要加入或移出的 ECS 或 ECI 实例数,使得伸缩组的 ECS 或 ECI 实例数调整到 MinSize 或 MaxSize,但伸缩规则的设定值不会变化。示例如下:
某个伸缩组,MaxSize=3,当前实例数 Total Capacity=2,伸缩规则指定加 3 台 ECS 实例,则在实际执行过程中只会加 1 台 ECS 实例,但伸缩规则的设定值仍然为 3。
某个伸缩组,MinSize=2,当前实例数 Total Capacity =3,伸缩规则指定减去 5 台 ECS 实例,则在实际执行过程中只会减 1 台 ECS 实例,但伸缩规则的设定值仍然为 5。
请注意以下参数相关说明:
当 AdjustmentType 是 TotalCapacity 时,表示将当前伸缩组的 ECS 或 ECI 实例数量调整到指定数量,对应的 AdjustmentValue 值必须大于等于 0。
当 AdjustmentType 是 QuantityChangeInCapacity 或 PercentChangeInCapacity,对应的 AdjustmentValue 值为正数表示增加实例、为负数表示减少实例。
当 AdjustmentType 是 PercentChangeInCapacity,弹性伸缩服务以伸缩组当前实例数(Total Capacity)xAdjusmentValue/100,并使用四舍五入原则来确认增加或减少的 ECS 实例或 ECI 实例个数。
当伸缩规则指定了冷却时间(Cooldown),则执行该伸缩规则的伸缩活动完成后,会以伸缩规则中指定的冷却时间对伸缩组进行冷却处理,如果伸缩规则未指定冷却时间,则以伸缩组指定的冷却时间(DefaultCooldown)为准。
一个伸缩组内可以创建的伸缩规则数量有限,具体说明请参见使用限制。
- 返回的伸缩规则唯一标识符(ScalingRuleAri)可以供以下接口使用:
在执行伸缩规则(ExecuteScalingRule)的 ScalingRuleAri 参数中指定,您可以手动执行该伸缩规则。
在创建定时任务(CreateScheduledTask)的 ScheduledAction 参数中指定,用户可以定时执行该伸缩规则。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
|
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
|
ess:CreateScalingRule |
create |
*ScalingGroup
|
无 | 无 |
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| ScalingGroupId |
string |
是 |
伸缩规则所属伸缩组的 ID。 |
asg-bp1ffogfdauy0jw0**** |
| ScalingRuleName |
string |
否 |
伸缩规则的名称,2~64 个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。 同一用户账号同一地域同一伸缩组内伸缩规则唯一。 如果没有指定该参数,默认值为 ScalingRuleId 的值。 |
scalingrule**** |
| Cooldown |
integer |
否 |
伸缩规则的冷却时间,仅适用于简单规则。取值范围:0~86400,单位:秒。 默认值:空。 |
60 |
| MinAdjustmentMagnitude |
integer |
否 |
伸缩规则最小调整实例数,仅当伸缩规则类型为 SimpleScalingRule 或 StepScalingRule,且 AdjustmentType 为 PercentChangeInCapacity 时生效。 |
1 |
| AdjustmentType |
string |
否 |
伸缩规则的调整方式,适用于简单规则和步进规则,且此时该项必选。取值范围:
|
QuantityChangeInCapacity |
| AdjustmentValue |
integer |
否 |
伸缩规则的调整值,适用于简单规则和步进规则,且此时该项必选。任何情况下,单次调整的 ECS 实例台数都不能超过 1000。不同调整方式对应的取值范围:
|
100 |
| ScalingRuleType |
string |
否 |
伸缩规则类型,取值范围:
默认值:SimpleScalingRule。 |
SimpleScalingRule |
| EstimatedInstanceWarmup |
integer |
否 |
实例预热时间,适用于目标追踪规则和步进规则。处于预热状态的 ECS 实例将正常的加入伸缩组,但是期间将不会向云监控上报监控数据。 说明
动态计算需要扩缩容的 ECS 实例数量时,处于预热状态的实例不计入现有实例数量。 取值范围:0~86400,单位:秒。 默认值:300。 |
300 |
| MetricName |
string |
否 |
预定义监控项,适用于目标追踪规则和预测规则,且此时该项必选。 目标追踪规则取值范围:
预测规则取值范围:
更多信息,请参见系统监控报警任务。 |
CpuUtilization |
| TargetValue |
number |
否 |
目标值,适用于目标追踪规则和预测规则,且此时该项必选。TargetValue 最多保留小数点后三位,且必须大于 0。 |
0.125 |
| DisableScaleIn |
boolean |
否 |
是否禁用缩容,仅适用于目标追踪规则。 默认值:false。 |
false |
| ScaleInEvaluationCount |
integer |
否 |
创建目标追踪规则后,会自动创建报警任务。本参数用于指定对应的缩容报警任务触发报警时,所需连续满足阈值条件的次数。 默认值:15。 |
15 |
| ScaleOutEvaluationCount |
integer |
否 |
创建目标追踪规则后,会自动创建报警任务。本参数用于指定对应的扩容报警任务触发报警时,所需连续满足阈值条件的次数。 默认值:3。 |
3 |
| PredictiveScalingMode |
string |
否 |
预测规则的模式,取值范围:
默认值:PredictAndScale。 |
PredictAndScale |
| PredictiveValueBehavior |
string |
否 |
预测规则最大值处理方式,取值范围:
默认值:MaxOverridePredictiveValue。 |
MaxOverridePredictiveValue |
| PredictiveValueBuffer |
integer |
否 |
默认值:0。 |
50 |
| PredictiveTaskBufferTime |
integer |
否 |
预测规则自动创建的预测任务默认均在整点执行,您可以设置预启动时间提前执行预测任务,预先准备资源。取值范围:0~60,单位:分钟。 默认值:0。 |
30 |
| InitialMaxSize |
integer |
否 |
伸缩组实例数上限,和 默认值为伸缩组最大实例数(MaxSize 的值)。 |
100 |
| StepAdjustments |
array<object> |
否 |
分步步骤对应的实例扩展信息组成的集合。 |
|
|
object |
否 |
分步步骤对应的实例扩展信息组成的集合。 |
||
| MetricIntervalUpperBound |
number |
否 |
分步步骤的上边界,取值范围:-9.999999E18~9.999999E18。 |
5.0 |
| ScalingAdjustment |
integer |
否 |
分步步骤对应的实例扩展数量,仅适用于步进规则。 |
1 |
| MetricIntervalLowerBound |
number |
否 |
分步步骤的下边界,仅适用于步进规则。取值范围:-9.999999E18~9.999999E18。 |
1.0 |
| RegionId |
string |
否 |
伸缩组所属的地域 ID。 |
cn-hangzhou |
| AlarmDimensions |
array<object> |
否 |
监控项维度信息值,适用于目标追踪规则,当监控项需额外维度信息时设置,例如 LoadBalancerRealServerAverageQps 监控项需指定 rulePool 维度键值信息。 |
|
|
object |
否 |
监控项维度信息值,适用于目标追踪规则,当监控项需额外维度信息时设置,例如 LoadBalancerRealServerAverageQps 监控项需指定 rulePool 维度键值信息。 |
||
| DimensionKey |
string |
否 |
监控项关联的维度信息键。 |
rulePool |
| DimensionValue |
string |
否 |
监控项关联的维度信息值。 |
sgp-l1cbirz451yxuxxx |
| MetricType |
string |
否 |
监控项类型。取值范围:
|
system |
| HybridMonitorNamespace |
string |
否 |
企业云监控指标仓库 id。 管理指标仓库,请参见管理指标仓库。 |
aliyun-test |
| HybridMetrics |
array<object> |
否 |
企业云监控指标设置。如何设置,请参见使用公式运算自定义目标追踪规则。 |
|
|
array<object> |
否 |
|||
| Id |
string |
否 |
公制运算表达式中指标的引用 id。 |
a |
| Expression |
string |
否 |
多个企业云监控指标的公制运算表达式,表达式的计算结果将用于触发扩缩容。 运算表达式需满足逆波兰表达式(RPN)规范,并且操作符只支持 |
(a+b)/2 |
| MetricName |
string |
否 |
企业云监控指标仓库中的指标名称。 |
AliyunSmq_NumberOfMessagesVisible |
| Statistic |
string |
否 |
指标的统计方式。取值范围:
|
Average |
| Dimensions |
array<object> |
否 |
指标纬度。用于指定指标监控的资源。 |
|
|
object |
否 |
|||
| DimensionKey |
string |
否 |
指标维度 key。 |
queue |
| DimensionValue |
string |
否 |
指标维度 value。 |
testQueue |
| AlarmOptions |
object |
否 |
告警属性定义。 |
|
| Period |
integer |
否 |
目标追踪规则中统计监控项数据的周期,单位:秒。取值范围:
说明
默认值:60。 |
60 |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
|||
| ScalingRuleAri |
string |
伸缩规则的唯一标识符。 |
ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7**** |
| RequestId |
string |
请求 ID。 |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
| ScalingRuleId |
string |
伸缩规则的 ID,由系统生成,全局唯一。 |
asr-bp1dvirgwkoowxk7**** |
示例
正常返回示例
JSON格式
{
"ScalingRuleAri": "ari:acs:ess:cn-hangzhou:140692647406****:scalingrule/asr-bp1dvirgwkoowxk7****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"ScalingRuleId": "asr-bp1dvirgwkoowxk7****"
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。