开发者社区> 问答> 正文

伸缩规则:创建伸缩规则



伸缩规则(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参数中指定,用户可以定时执行该伸缩规则。


请求参数

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


返回参数

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


示例



请求示例

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


返回示例


XML格式:
  1. <CreateScalingRuleResponse>  
  2.     <ScalingRuleAri>ari:acs:ess:cn-qingdao:1344371:scalingrule/eMKWG8SRNb9dBLAjweNI1Ik</ScalingRuleAri>
  3.     <ScalingRuleId>eMKWG8SRNb9dBLAjweNI1Ik</ScalingRuleId>
  4.     <RequestId>570C84F4-A434-488A-AFA1-1E3213682B33</RequestId>
  5. </CreateScalingRuleResponse>

JSON格式:
  1. {
  2.     "RequestId": "04F0F334-1335-436C-A1D7-6C044FE73368",
  3.     "ScalingRuleId": "eMKWG8SRNb9dBLAjweNI1Ik",
  4.     "ScalingRuleAri":"ari:acs:ess:cn-qingdao:1344371:scalingrule/eMKWG8SRNb9dBLAjweNI1Ik"
  5. }


错误码


对于所有接口的通用性错误,请参考 客户端错误表服务器端错误表
错误代码错误信息HTTP 状态码描述
InvalidScalingGroupId.NotFoundThe specified scaling group does not exist.404指定的伸缩组在该用户账号下不存在
[tr=rgb(239, 251, 255)][td]InvalidScalingRuleName.Duplicate The specified value of parameter <parameter name> is duplicated.400伸缩规则名字已存在 QuotaExceeded.ScalingRuleScaling rule quota exceeded in the specified scaling group.400用户的伸缩规则使用个数达到上限

展开
收起
青蛙跳 2018-08-17 13:43:36 1862 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
基于流量的灰度发布和自动弹性实践 立即下载
弹性云的核心--基于热迁移的弹性调度 立即下载
k8s自动伸缩那些事资料下载 立即下载