调用UpdateApplicationScalingRule接口更新应用的弹性伸缩规则。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
edas:ManageApplication | Write |
|
| 无 |
请求语法
PUT /pop/v1/eam/scale/application_scaling_rule
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
AppId | string | 否 | 应用 ID,可调用 ListApplication 接口获取。 | 78194c76-3dca-418e-a263-cccd1ab4**** |
ScalingRuleName | string | 否 | 弹性伸缩策略的名称。 | cpu-trigger |
ScalingRuleType | string | 否 | 弹性策略类型,当前仅支持以下类型:
| trigger |
ScalingRuleEnable | boolean | 否 | 弹性策略的启用状态。
| true |
ScalingRuleMetric | string | 否 | 此参数已废弃。 | 1 |
ScalingRuleTimer | string | 否 | 此参数已废弃。 | 1 |
ScalingRuleTrigger | string | 否 | 触发器策略,为 ScalingRuleTriggerDTO 的 JSON 格式,具体样式,请参见请求参数补充说明。 | ScalingRuleTriggerDTO{......} |
ScalingBehaviour | string | 否 | 配置自定义弹性行为,具体数据结构参考样例。 | {"scaleUp":{"stabilizationWindowSeconds":"0","selectPolicy":"Max","policies":[{"type":"Pods","value":5,"periodSeconds":15}]},"scaleDown":{"stabilizationWindowSeconds":"300","selectPolicy":"Max","policies":[{"type":"Percent","value":200,"periodSeconds":15}]}} |
请求参数补充说明
public class ScalingRuleTriggerDTO {
/**
* 最大实例数,上限 1000。
*/
Integer maxReplicas;
/**
* 最小实例数,下限 0。
*/
Integer minReplicas;
/**
* 触发器列表,支持多个触发器。
*/
List<Trigger> triggers;
@Data
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class Trigger {
/**
* 触发器类型,支持 cron(定时), app_metric(应用监控)。
*/
String type;
/**
* 触发器名称,必须以字母开头,允许数字、字母、短划线(-)或下划线(_)组成。最大长度 30 个字符。
*/
String name;
/**
触发器元数据,string->string 的 map Json,不同类型的触发器支持的元数据不同。
1. cron
{"period":"weekly","dryRun":"false","timerInDay":[{"atTime":"08:00","targetReplicas":2},{"atTime":"20:00","targetReplicas":1}],"timerInWeek":["Sat","Thu"]}
* period 周期:daily, weekly, monthly。
* dryRun: false 是观测并扩缩,true 是仅观测。
* timerInDay:描述每天的扩缩周期,指在什么时候开始维持多少副本数。
* timerInWeek:cron 表达式的周,比如 Fri。
2. app_metric
{\"metricName\":\"arms_appstat.incall_QPS\",\"dryRun\":\"false\",\"targetValAvg\":\"true\",\"targetAverageValue\":\"100\"}
* metricName:
* arms_appstat.incall_QPS(qps)
* arms_appstat.incall_rt(rt)
* arms_appstat.system_CPU(cpu 使用率)
* arms_appstat.system_MEM(内存使用率)
* dryRun 同 cron。
* targetValAvg:true 为需要进行平均,false 为不需要平均, 除了 qps 为 true,其他均为 false。
* targetAverageValue/targetValue: targetValAvg 为 true 则为 targetAverageValue,targetValAvg 为 false 则为 targetValue。
*/
String metadata;
}
}
返回参数
示例
正常返回示例
JSON
格式
{
"Code": 200,
"Message": "success",
"RequestId": "a5281053-08e4-47a5-b2ab-5c0323de7b5a",
"AppScalingRule": {
"UpdateTime": 1574251601785,
"CreateTime": 1574251601785,
"AppId": "78194c76-3dca-418e-a263-cccd1ab4****",
"LastDisableTime": 1574251601785,
"MaxReplicas": 1,
"ScaleRuleEnabled": true,
"ScaleRuleType": "trigger",
"MinReplicas": 1,
"ScaleRuleName": "cpu-trigger",
"Metric": {
"MinReplicas": 1,
"MaxReplicas": 1,
"Metrics": [
{
"MetricTargetAverageUtilization": 1,
"MetricType": "cpu"
}
]
},
"Trigger": {
"MinReplicas": 1,
"MaxReplicas": 122,
"Triggers": [
{
"Type": "cron",
"MetaData": "{\"dryRun\":true}",
"Name": "cpu"
}
]
},
"Behaviour": {
"ScaleUp": {
"StabilizationWindowSeconds": 0,
"SelectPolicy": "Max",
"Policies": [
{
"PeriodSeconds": 15,
"Type": "Pods",
"Value": "10"
}
]
},
"ScaleDown": {
"StabilizationWindowSeconds": 300,
"SelectPolicy": "Max",
"Policies": [
{
"PeriodSeconds": 15,
"Type": "Pods",
"Value": "10"
}
]
}
}
}
}
错误码
访问错误中心查看更多错误码。