本文介绍创建伸缩规则API操作。

伸缩规则(Scaling Rule)定义了具体的扩展或收缩操作,例如加入或移出N个实例。

如果伸缩规则的执行会造成伸缩组的ECS实例数低于MinSize或高于MaxSize时,则弹性伸缩会自动调整需要加入或移出的ECS实例数,使之按照“将伸缩组的实例数调整到MinSize”或“将伸缩组的实例数调整到MaxSize”的规则执行。

  • 例:某个伸缩组,MaxSize = 3,当前实例数Total Capacity =2,伸缩规则指定“加3台ECS实例”,则在实际执行过程中只会加1台ECS实例。(伸缩规则当中的值不会调整)
  • 例:某个伸缩组,MinSize = 2,当前实例数Total Capacity = 3,伸缩规则指定“减去5台ECS实例”,则在实际执行过程中只会减1台ECS实例。(伸缩规则当中的值不会调整)

描述

根据传入参数创建伸缩规则。

  • 当AdjustmentType是TotalCapacity时,表示将当前伸缩组的ECS实例数量调整到指定数量,对应的AdjustmentValue值必须大于等于0。
  • 当AdjustmentType是QuantityChangeInCapacity或PercentChangeInCapacity,对应的AdjustmentValue值为正数表示增加实例、为负数表示减少实例。
  • 当AdjustmentType是PercentChangeInCapacity,弹性伸缩服务以伸缩组当前实例数(Total Capacity) * AdjusmentValue/100,并使用四舍五入原则来确认增加或减少的ECS实例个数。
  • 当伸缩规则指定了冷却时间(Cooldown),则执行该伸缩规则的伸缩活动完成后,会以伸缩规则中指定的冷却时间对伸缩组进行冷却处理,如果伸缩规则未指定冷却时间,则以伸缩组指定的冷却时间(DefaultCooldown)为准。
  • 一个伸缩组内最多只能创建50条伸缩规则。
  • 返回的伸缩规则唯一标识符(ScalingRuleAri),主要可以被以下接口所使用:
    • 在执行伸缩规则(ExecuteScalingRule)的ScalingRuleAri参数中指定,用户可以手工执行该伸缩规则。
    • 在创建定时任务(CreateScheduledTask)的ScheduledAction参数中指定,用户可以定时执行该伸缩规则。

请求参数

名称 类型 是否必需 描述
Action String 操作接口名,系统规定参数,取值:CreateScalingRule。
ScalingGroupId String 伸缩规则所属的伸缩组ID。
AdjustmentType String 伸缩规则的调整方式。可选值:
  • QuantityChangeInCapacity:增加或减少指定数量的ECS实例。
  • PercentChangeInCapacity:增加或减少指定比例的ECS实例。
  • TotalCapacity: 将当前伸缩组的ECS实例数量调整到指定数量。
AdjustmentValue Integer 伸缩规则的调整值。取值范围:
  • QuantityChangeInCapacity:(0, 100] U (-100, 0]
  • PercentChangeInCapacity:[0, 10000] U [-10000, 0]
  • TotalCapacity:[0, 100]
ScalingRuleName String 伸缩规则的显示名称,2-40 个英文或中文字符,以数字、大小字母或中文开头,可包含数字,“_”、“-”或“.”。同一用户账号同一地域同一伸缩组内唯一。如果没有指定该参数,默认值为ScalingRuleId。
Cooldown Integer 伸缩规则的冷却时间。取值范围:[0, 86400],单位:秒。默认值为:空。

返回参数

名称 类型 描述
ScalingRuleId String 伸缩规则的ID,由系统生成,全局唯一。
ScalingRuleAri String 伸缩规则的唯一标识符。

请求示例

http://ess.aliyuncs.com/?Action=CreateScalingRule
&ScalingGroupId=AG6CQdPU8OKdwLjgZcJ2eaQ
&AdjustmentType=QuantityChangeInCapacity
&AdjustmentValue=-10
&<公共请求参数>

返回示例

XML格式:

<CreateScalingRuleResponse>   
    <ScalingRuleAri>ari:acs:ess:cn-qingdao:1344371:scalingrule/eMKWG8SRNb9dBLAjweNI1Ik</ScalingRuleAri>
    <ScalingRuleId>eMKWG8SRNb9dBLAjweNI1Ik</ScalingRuleId>
    <RequestId>570C84F4-A434-488A-AFA1-1E3213682B33</RequestId>
</CreateScalingRuleResponse>

JSON格式:

{
    "RequestId": "04F0F334-1335-436C-A1D7-6C044FE73368",
    "ScalingRuleId": "eMKWG8SRNb9dBLAjweNI1Ik",
    "ScalingRuleAri":"ari:acs:ess:cn-qingdao:1344371:scalingrule/eMKWG8SRNb9dBLAjweNI1Ik"
}

错误码

对于所有接口的通用性错误,请参考 客户端错误服务器端错误

错误代码 错误信息 HTTP 状态码 描述
InvalidScalingGroupId.NotFound The specified scaling group does not exist. 404 指定的伸缩组在该用户账号下不存在
InvalidScalingRuleName.Duplicate The specified value of parameter <parameter name> is duplicated. 400 伸缩规则名字已存在
QuotaExceeded.ScalingRule Scaling rule quota exceeded in the specified scaling group. 400 用户的伸缩规则使用个数达到上限