CreateScalingRule - 创建一条伸缩规则

更新时间:
复制 MD 格式

伸缩规则的作用由伸缩规则的类型来决定,可用于触发伸缩活动或者智能设置伸缩组边界值。根据不同业务需求,通过调用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代码示例。

调试

授权信息

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

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

ess:CreateScalingRule

create

*ScalingGroup

acs:ess:{#regionId}:{#accountId}:scalinggroup/{#ScalingGroupId}

请求参数

名称

类型

必填

描述

示例值

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:增加或减少指定数量的 ECS 实例。

  • PercentChangeInCapacity:增加或减少指定比例的 ECS 实例。

  • TotalCapacity:将当前伸缩组的 ECS 实例数量调整到指定数量。

QuantityChangeInCapacity

AdjustmentValue

integer

伸缩规则的调整值,适用于简单规则和步进规则,且此时该项必选。任何情况下,单次调整的 ECS 实例台数都不能超过 1000。不同调整方式对应的取值范围:

  • QuantityChangeInCapacity:-1000~1000。

  • PercentChangeInCapacity:-100~10000。

  • TotalCapacity:0~2000。

100

ScalingRuleType

string

伸缩规则类型,取值范围:

  • SimpleScalingRule:简单规则。根据调整方式(AdjustmentType)和调整值(AdjustmentValue)调整 ECS 或 ECI 实例数量。

  • TargetTrackingScalingRule:目标追踪规则。根据预定义监控(MetricName)项动态计算需要扩缩容的 ECS 或 ECI 实例数量,尽量将预定义监控项的指标值维持在目标值(TargetValue)附近。

  • StepScalingRule:步进规则,根据阈值和指标值提供分步扩展方式。

  • PredictiveScalingRule:预测规则,基于机器学习能力分析伸缩组的历史监控数据预测未来监控指标值,并支持自动创建定时任务设置伸缩组边界。

默认值:SimpleScalingRule。

SimpleScalingRule

EstimatedInstanceWarmup

integer

实例预热时间,适用于目标追踪规则和步进规则。处于预热状态的 ECS 实例将正常的加入伸缩组,但是期间将不会向云监控上报监控数据。

说明

动态计算需要扩缩容的 ECS 实例数量时,处于预热状态的实例不计入现有实例数量。

取值范围:0~86400,单位:秒。

默认值:300。

300

MetricName

string

预定义监控项,适用于目标追踪规则和预测规则,且此时该项必选。

目标追踪规则取值范围:

  • CpuUtilizationAgent:(Agent)CPU 使用率(推荐)。

  • MemoryUtilization:(Agent)内存(推荐)。

  • CpuUtilization:(ECS)平均 CPU 使用率。

  • IntranetTx:(ECS)内网出流量的平均值。

  • IntranetRx:(ECS)内网入流量的平均值。

  • VpcInternetTx:(ECS)公网出流量的平均值。

  • VpcInternetRx:(ECS)公网入流量的平均值。

  • LoadBalancerRealServerAverageQps:(ALB)服务器组单机 QPS。

预测规则取值范围:

  • CpuUtilization:(ECS)平均 CPU 使用率。

  • IntranetRx:(ECS)内网入流量平均值。

  • IntranetTx :(ECS)内网出流量平均值。

更多信息,请参见系统监控报警任务

CpuUtilization

TargetValue

number

目标值,适用于目标追踪规则和预测规则,且此时该项必选。TargetValue 最多保留小数点后三位,且必须大于 0。

0.125

DisableScaleIn

boolean

是否禁用缩容,仅适用于目标追踪规则。

默认值:false。

false

ScaleInEvaluationCount

integer

创建目标追踪规则后,会自动创建报警任务。本参数用于指定对应的缩容报警任务触发报警时,所需连续满足阈值条件的次数。

默认值:15。

15

ScaleOutEvaluationCount

integer

创建目标追踪规则后,会自动创建报警任务。本参数用于指定对应的扩容报警任务触发报警时,所需连续满足阈值条件的次数。

默认值:3。

3

PredictiveScalingMode

string

预测规则的模式,取值范围:

  • PredictAndScale:产生预测结果并创建预测任务。

  • PredictOnly:产生预测结果,但不会创建预测任务。

默认值:PredictAndScale。

PredictAndScale

PredictiveValueBehavior

string

预测规则最大值处理方式,取值范围:

  • MaxOverridePredictiveValue:初始最大值会覆盖预测值。预测值大于初始最大值时,预测任务的最大值采用初始最大值。

  • PredictiveValueOverrideMax:预测值会覆盖初始最大值。预测值大于初始最大值时,预测任务的最大值采用预测值。

  • PredictiveValueOverrideMaxWithBuffer:预测值会附加一定比例。预测值会按照 PredictiveValueBuffer 比例增加,当增加后的值大于初始最大值时,会采用增加后的值。

默认值:MaxOverridePredictiveValue。

MaxOverridePredictiveValue

PredictiveValueBuffer

integer

PredictiveValueBehaviorPredictiveValueOverrideMaxWithBuffer时生效,预测值会按照该比例增加,当增加后的值大于初始最大值时,会采用增加后的值。取值范围:0~100。

默认值:0。

50

PredictiveTaskBufferTime

integer

预测规则自动创建的预测任务默认均在整点执行,您可以设置预启动时间提前执行预测任务,预先准备资源。取值范围:0~60,单位:分钟。

默认值:0。

30

InitialMaxSize

integer

伸缩组实例数上限,和PredictiveValueBehavior结合使用。

默认值为伸缩组最大实例数(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:使用云监控系统指标。

  • custom:使用上报到云监控的自定义指标。

  • hybrid:使用企业云监控的指标。

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:指定区间内所有点的平均值。

  • Minimum:指定区间内所有点的最小值。

  • Maximum:指定区间内所有点的最大值。

Average

Dimensions

array<object>

指标纬度。用于指定指标监控的资源。

object

DimensionKey

string

指标维度 key。

queue

DimensionValue

string

指标维度 value。

testQueue

AlarmOptions

object

告警属性定义。

Period

integer

目标追踪规则中统计监控项数据的周期,单位:秒。取值范围:

  • 15。

  • 60。

  • 120。

  • 300。

  • 900。

说明

默认值: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****"
}

错误码

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

变更历史

更多信息,参考变更详情