文档首页/ 弹性伸缩 AS/ API参考/ API/ 弹性伸缩策略/ 创建弹性伸缩策略(V2版本)
更新时间:2024-07-22 GMT+08:00

创建弹性伸缩策略(V2版本)

功能介绍

可针对不同类型资源如伸缩组或带宽,创建弹性伸缩策略。

创建弹性伸缩策略V2版本与V1版本的区别在于,V2版本支持创建对带宽资源进行调整的策略,通过伸缩资源类型区分伸缩资源。

URI

POST /autoscaling-api/v2/{project_id}/scaling_policy

表1 参数说明

参数

是否必选

参数类型

描述

project_id

String

项目ID

请求参数

表2 请求参数

参数

是否必选

参数类型

描述

scaling_policy_name

String

伸缩策略名称(1-64个字符),只能包含中文、字母、数字、下划线或中划线。

scaling_resource_id

String

伸缩资源ID,伸缩组唯一标识或带宽唯一标识

  • 如果scaling_resource_type为SCALING_GROUP,对应伸缩组唯一标识即伸缩组ID。
  • 如果scaling_resource_type为BANDWIDTH,对应带宽唯一标识即带宽ID。
    说明:

    弹性伸缩不支持对包年包月的带宽进行调整。

scaling_resource_type

string

伸缩资源类型

  • 伸缩组:SCALING_GROUP
  • 带宽:BANDWIDTH

scaling_policy_type

String

策略类型

  • 告警策略:ALARM(与alarm_id对应)
  • 定时策略:SCHEDULED(与scheduled_policy对应)
  • 周期策略:RECURRENCE(与scheduled_policy对应)
  • 区间策略:INTERVAL_ALARM(与alarm_id对应)

alarm_id

String

告警ID,即告警规则的ID,当scaling_policy_type为ALARM时该项必选,此时scheduled_policy不生效。

创建告警策略成功后,会自动为该告警ID对应的告警规则的alarm_actions字段增加类型为autoscaling的告警触发动作。

告警ID通过查询云监控告警规则列表获取,请参考《云监控API参考》的“查询告警规则列表”。

scheduled_policy

scheduled_policy object

定时、周期任务策略,当scaling_policy_type为SCHEDULED或RECURRENCE时该项必选,此时alarm_id不生效。详情请见表 scheduled_policy字段数据结构说明

scaling_policy_action

scaling_policy_action object

策略执行具体动作。详情请见表 scaling_policy_action字段数据结构说明

interval_alarm_actions

Array of interval_alarm_actions objects

伸缩策略告警区间,当scaling_policy_type为INTERVAL_ALARM时,该参数生效且必填。详情请见表 interval_alarm_actions字段数据结构说明

cool_down_time

Integer

冷却时间,取值范围0-86400,默认为300,单位是秒。

description

String

伸缩策略描述(1-256个字符)。

表3 scheduled_policy字段数据结构说明

参数

是否必选

参数类型

描述

launch_time

String

触发时间,遵循UTC时间。

  • 如果scaling_policy_type为SCHEDULED,则格式为:YYYY-MM-DDThh:mmZ。
  • 如果scaling_policy_type为RECURRENCE,则格式为:hh:mm。

recurrence_type

String

周期触发类型,scaling_policy_type为RECURRENCE时该项必选。

  • Daily:每天执行一次
  • Weekly:每周指定天执行一次。
  • Monthly:每月指定天执行一次。

recurrence_value

String

周期触发任务数值,scaling_policy_type为RECURRENCE时该项必选。

  • 类型为Daily时,该字段为null,表示每天执行
  • 类型为Weekly时,该字段取值范围为1-7,1表示星期日,以此类推,以“,”分割,例如:1,3,5。
  • 类型为Monthly时,该字段取值范围为1-31,分别表示每月的日期,以“,”分割,例如:1,10,13,28。
    说明:

    当recurrence_type类型为Daily时,recurrence_value参数不生效。

start_time

String

周期策略重复执行开始时间,遵循UTC时间,默认为当前时间。

格式为:YYYY-MM-DDThh:mmZ。

end_time

String

周期策略重复执行结束时间,遵循UTC时间,scaling_policy_type为RECURRENCE时该项必选。当为周期类型策略时,不得早于当前时间和开始时间。

格式为:YYYY-MM-DDThh:mmZ。

表4 scaling_policy_action字段数据结构说明

参数

是否必选

参数类型

描述

operation

String

操作选项,默认为ADD。
  • 当scaling_resource_type为SCALING_GROUP,支持如下操作:
    • ADD:增加
    • REMOVE/REDUCE:减少
    • SET:设置为
  • 当scaling_resource_type为BANDWIDTH,支持如下操作:
    • ADD:增加
    • REDUCE:减少
    • SET:设置为

size

Integer

操作大小,取值范围为0到300的整数,默认为1。只有操作为SET时取值可以为0,其余操作取值均不能为0。

  • 当scaling_resource_type为SCALING_GROUP时,size为实例个数,取值范围为0到300的整数,默认为1。
  • 当scaling_resource_type为BANDWIDTH时,size表示带宽大小,单位为Mbit/s,取值范围为1到300的整数,默认为1。
  • 当scaling_resource_type为SCALING_GROUP时,size和percentage参数只能选其中一个进行配置。

percentage

Integer

操作百分比,操作为ADD或REMOVE/REDUCE时取值范围为1到20000的整数,操作为SET时取值范围为0到20000的整数。

  • 当scaling_resource_type为SCALING_GROUP时,size和percentage参数只能选其中一个进行配置,如果size和percentage参数均无配置,则size默认为1。
  • 当scaling_resource_type为BANDWIDTH时,不支持配置percentage参数。

limits

Integer

操作限制

当scaling_resource_type为BANDWIDTH,且operation不为SET时,limits参数生效,单位为Mbit/s。

  • 当operation为ADD时,limits表示带宽可调整的上限;
  • 当operation为REDUCE时,limits表示带宽可调整的下限。
表5 interval_alarm_actions字段数据结构说明

参数

是否必选

参数类型

描述

lower_bound

double

区间下限,默认为空。

区间下限为空时,区间上限必须小于等于0。

区间下限最小值为-1.174271E108。

upper_bound

double

区间上限,默认为空。

区间上限为空时,区间下限必须大于等于0。

区间上限最大值为1.174271E108。

operation

String

操作选项,默认为ADD。

  • 当scaling_resource_type为SCALING_GROUP,支持如下操作:
    • ADD:增加
    • REMOVE/REDUCE:减少
    • SET:设置为
  • 当scaling_resource_type为BANDWIDTH,支持如下操作:
    • ADD:增加
    • REDUCE:减少
    • SET:设置为

size

Integer

操作大小,取值范围为0到300的整数,默认为1。

只有操作为SET时,取值可以为0,其余操作取值均不能为0。

  • 当scaling_resource_type为SCALING_GROUP时,size为实例个数,取值范围为0到300的整数,默认为1。
  • 当scaling_resource_type为BANDWIDTH时,size表示带宽大小,单位为Mbit/s,取值范围为1到300的整数,默认为1。
  • 当scaling_resource_type为SCALING_GROUP时,size和percentage参数只能选其中一个进行配置。

percentage

Integer

操作百分比,操作为ADD或REMOVE或REDUCE时,取值范围为1到20000的整数;

操作为SET时,取值范围为0到20000的整数。

  • 当scaling_resource_type为SCALING_GROUP时,size和percentage参数只能选其中一个进行配置,若size和percentage参数均无配置,则size默认为1。
  • 当scaling_resource_type为BANDWIDTH时,不支持配置percentage参数。

limits

Integer

操作限制

当scaling_resource_type为BANDWIDTH,且operation不为SET时,limits参数生效,单位为Mbit/s。

  • 当operation为ADD时,limits表示带宽可调整的上限;
  • 当operation为REDUCE时,limits表示带宽可调整的下限。
  • 区间策略的告警数据范围实际为:告警规则的阈值 + 区间上下限。
  • 区间下限为空时,实际告警数据范围下限为负无限,区间上限为空时,实际告警数据范围上限为正无限。

如:

伸缩策略使用的告警规则为“CPU利用率 >= 30%” ,添加两个区间:

执行动作为 “30% <= CPU利用率 < 60% ,增加一个实例”, 区间下限应设置为0,区间上限应设置为30。

执行动作为 “60% <= CPU利用率 < 正无限 ,增加两个实例”, 区间下限应设置为30,区间上限可不传入或设置为空。

  • 区间上下限同时不为空时,必须同时大于等于0,或者同时小于等于0。
  • 当为区间告警策略添加多个区间时,各区间不能重叠。
  • 告警规则的运算比较符为“=”时,无法添加区间。

请求示例

创建一个名称为hth_aspolicy_1的告警策略,使用的告警规则ID为al1513822380493GvlJKZwA8,每当告警规则达到告警阈值后,该策略会使ID为8ade64b5-d685-40b8-8582-4ce306ea37a6的带宽增加1Mbit/s,直到带宽值达到限制10Mbit/s。
POST https://{Endpoint}/autoscaling-api/v2/{project_id}/scaling_policy

{ 
    "alarm_id": "al1513822380493GvlJKZwA8",
    "cool_down_time": 900,
    "scaling_resource_id": "8ade64b5-d685-40b8-8582-4ce306ea37a6",
    "scaling_resource_type": "BANDWIDTH",
    "scaling_policy_action": {
           "size": 1,
           "operation": "ADD",
           "limits": 10
    },
    "scaling_policy_name": "hth_aspolicy_1",
    "scaling_policy_type": "ALARM"
}

响应参数

表6 响应参数

参数

参数类型

描述

scaling_policy_id

String

伸缩策略ID

响应示例

{ 
     "scaling_policy_id": "0h327883-324n-4dzd-9c61-68d03ee191dd"  
}

返回值

  • 正常

    200

  • 异常

    返回值

    说明

    400 Bad Request

    服务器未能处理请求。

    401 Unauthorized

    被请求的页面需要用户名和密码。

    403 Forbidden

    对被请求的页面访问禁止。

    404 Not Found

    服务器无法找到被请求的页面。

    405 Method Not Allowed

    请求中指定的方法不被允许。

    406 Not Acceptable

    服务器生成的响应无法被客户端所接受。

    407 Proxy Authentication Required

    用户必须首先使用代理服务器进行验证,这样请求才会被处理。

    408 Request Timeout

    请求超出了服务器的等待时间。

    409 Conflict

    由于冲突,请求无法被完成。

    500 Internal Server Error

    请求未完成。服务异常。

    501 Not Implemented

    请求未完成。服务器不支持所请求的功能。

    502 Bad Gateway

    请求未完成。服务器从上游服务器收到一个无效的响应。

    503 Service Unavailable

    请求未完成。系统暂时异常。

    504 Gateway Timeout

    网关超时。

错误码

请参考错误码