创建弹性伸缩策略
功能介绍
创建弹性伸缩策略。
- 伸缩策略定义了伸缩组内实例的扩张和收缩操作。如果执行伸缩策略造成伸缩组期望实例数与伸缩组内实例数不符,弹性伸缩会自动调整实例资源,以匹配期望实例数。
- 当前伸缩策略支持告警触发策略,周期触发策略,定时触发策略。
- 在策略执行具体动作中,可设置实例变化的个数,或根据当前实例的百分比数进行伸缩。
URI
POST /autoscaling-api/v1/{project_id}/scaling_policy
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID |
请求消息
- 请求参数
表2 请求参数 参数
是否必选
参数类型
描述
scaling_policy_name
是
String
伸缩策略名称(1-64个字符),只能包含中文、字母、数字、下划线或中划线。
scaling_group_id
是
String
伸缩组ID,通过查询弹性伸缩组列表获取,请参考查询弹性伸缩组列表。
scaling_policy_type
是
String
策略类型
- 告警策略:ALARM(与alarm_id对应)
- 定时策略:SCHEDULED(与scheduled_policy对应)
- 周期策略:RECURRENCE(与scheduled_policy对应)
alarm_id
否
String
告警ID,即告警规则的ID,当scaling_policy_type为ALARM时该项必选,此时scheduled_policy不生效。
创建告警策略成功后,会自动为该告警ID对应的告警规则的alarm_actions字段增加类型为autoscaling的告警触发动作。
scheduled_policy
否
Object
定时、周期任务策略,当scaling_policy_type为SCHEDULED或RECURRENCE时该项必选,此时alarm_id不生效。详情请见表 scheduled_policy字段数据结构说明。
scaling_policy_action
否
Object
策略执行具体动作。详情请见表 scaling_policy_action字段数据结构说明。
cool_down_time
否
Integer
冷却时间,取值范围0-86400,默认为300,单位是秒。
表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。
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。
- ADD:增加实例
- REMOVE/REDUCE:减少实例
- SET:设置实例数为
instance_number
否
Integer
操作实例个数,默认为1。当配额为默认配额时,取值范围如下:
- operation为SET时,取值范围为:0~300。
- operation为ADD或REMOVE/REDUCE时,取值范围为:1~。
说明:配置参数时,instance_number和instance_percentage参数只能选其中一个进行配置。
instance_percentage
否
Integer
操作实例百分比,将伸缩组容量增加、减少或设置为伸缩组当前实例个数的百分比。操作为ADD或REMOVE/REDUCE时取值范围为1到20000的整数,操作为SET时取值范围为0到20000的整数。
当instance_number和instance_percentage参数均无配置时,则操作实例个数为1。
配置参数时,instance_number和instance_percentage参数只能选其中一个进行配置。
- 请求样例
本示例展示了创建一个名称为as-policy-7a75的周期策略,该策略的生效时间为2015-12-14T03:34Z到2015-12-27T03:34Z,每天16:00在ID为5bc3aa02-b83e-454c-aba1-4d2095c68f8b的伸缩组中增加一个实例。
POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_policy { "scaling_policy_name": "as-policy-7a75", "scaling_policy_action": { "operation": "ADD", "instance_number": 1 }, "cool_down_time": 900, "scheduled_policy": { "launch_time": "16:00", "recurrence_type": "Daily", "start_time": "2015-12-14T03:34Z", "end_time": "2015-12-27T03:34Z" }, "scaling_policy_type": "RECURRENCE", "scaling_group_id": "5bc3aa02-b83e-454c-aba1-4d2095c68f8b" }
响应消息
- 响应参数
表5 响应参数 参数
参数类型
描述
scaling_policy_id
String
伸缩策略ID
- 响应样例
{ "scaling_policy_id": "0h327883-324n-4dzd-9c61-68d03ee191dd" }
返回值
- 正常
- 异常
返回值
说明
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
网关超时。
错误码
请参考错误码。