调用UpdateApplicationScalingRule接口更新应用弹性伸缩策略。
使用须知
如果单个应用需要弹出超过50个实例,需提交工单申请白名单。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求头
该接口使用公共请求头,无特殊请求头。更多信息,请参见公共请求和返回头。
请求语法
PUT /pop/v1/sam/scale/applicationScalingRule HTTP/1.1
请求参数
名称 | 类型 | 位置 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|---|
AppId | String | Query | 是 | 7171a6ca-d1cd-4928-8642-7d5cfe69**** |
应用ID。 |
ScalingRuleName | String | Query | 是 | timer-0800-2100 |
自定义的弹性伸缩策略名。必须以小写字母开头,仅可包含小写字母、数字及短划线(-),不超过32个字符。 说明 弹性伸缩策略创建成功后,不可修改策略名。
|
ScalingRuleTimer | String | Query | 否 | {"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]} |
定时弹性策略的配置。当您选择定时弹性策略或使用SDK设置时,该参数必选。 参数说明如下:
|
ScalingRuleMetric | String | Query | 否 | {"maxReplicas":3,"minReplicas":1,"metrics":[{"metricType":"CPU","metricTargetAverageUtilization":20},{"metricType":"MEMORY","metricTargetAverageUtilization":30},{"metricType":"tcpActiveConn","metricTargetAverageUtilization":20},{"metricType":"SLB_QPS","MetricTargetAverageUtilization":25,"SlbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","SlbLogstore":"function-log","Vport":"80"},{"metricType":"SLB_RT","MetricTargetAverageUtilization":35,"SlbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","SlbLogstore":"function-log","Vport":"80"}],"scaleUpRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":0},"scaleDownRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":300}} |
监控指标弹性策略的配置。当您选择监控指标弹性策略设置时,该参数必选。 参数说明如下:
说明 您可以选择设置一个或多个监控指标。当设置多个监控指标时,只要任何一个指标大于或者等于目标值,则应用进行扩容,扩容后实例数不高于应用最大实例数;如果所有指标均小于目标值,则应用进行缩容,缩容后实例数不低于应用最小实例数。
|
MinReadyInstances | Integer | Query | 否 | 3 |
最小存活实例数。取值说明如下:
说明 每次滚动部署最小存活的实例数建议≥1,保证业务不中断。
|
MinReadyInstanceRatio | Integer | Query | 否 | -1 |
最小存活实例数百分比。取值说明如下:
说明 当MinReadyInstance和MinReadyInstanceRatio同时传递时,且MinReadyInstanceRatio的取值非-1时,以MinReadyInstanceRatio参数为准。假设MinReadyInstances取值为5,MinReadyInstanceRatio取值为50,则会用50来计算最小存活实例数。
|
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
RequestId | String | 91F93257-7A4A-4BD3-9A7E-2F6EAE6D**** |
请求ID。 |
TraceId | String | 0a98a02315955564772843261e**** |
调用链ID,用于精确查询调用信息。 |
Data | Object |
返回结果。 |
|
Timer | Object |
定时弹性伸缩。 |
|
EndDate | String | 2021-04-25 |
定时弹性伸缩策略的短期结束日期。取值说明如下:
|
BeginDate | String | 2021-03-25 |
定时弹性伸缩策略的短期起始日期。取值说明如下:
|
Schedules | Array of Schedule |
单天内触发时间点。 |
|
AtTime | String | 08:00 |
时间点。格式:时:分。 |
TargetReplicas | Integer | 3 |
目标实例数。 |
Period | String | * * * |
执行定时弹性伸缩策略的周期。取值说明如下:
|
UpdateTime | Long | 1616642248938 |
弹性伸缩策略的更新时间。单位:毫秒。 |
AppId | String | 7171a6ca-d1cd-4928-8642-7d5cfe69**** |
应用ID。 |
CreateTime | Long | 1616642248938 |
弹性伸缩策略的创建时间。单位:毫秒。 |
LastDisableTime | Long | 1641882854484 |
最近一次禁用弹性伸缩策略的时间。 |
ScaleRuleEnabled | Boolean | true |
是否启用弹性伸缩策略。取值说明如下:
|
ScaleRuleType | String | timing |
弹性伸缩策略类型。取值说明如下:
|
Metric | Object |
监控指标弹性伸缩。 |
|
Metrics | Array of Metric |
监控指标弹性伸缩列表。 |
|
MetricTargetAverageUtilization | Integer | 20 |
监控指标的目标值。
|
MetricType | String | CPU |
监控指标触发条件。取值说明如下:
|
MaxReplicas | Integer | 3 |
最大实例数。 |
MinReplicas | Integer | 1 |
最小实例数。 |
ScaleRuleName | String | test |
弹性伸缩策略名称。 |
示例
请求示例
PUT /pop/v1/sam/scale/applicationScalingRule?AppId=7171a6ca-d1cd-4928-8642-7d5cfe69****&ScalingRuleName=timer-0800-2100&ScalingRuleTimer={"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]}&ScalingRuleMetric={"maxReplicas":3,"minReplicas":1,"metrics":[{"metricType":"CPU","metricTargetAverageUtilization":20},{"metricType":"MEMORY","metricTargetAverageUtilization":30},{"metricType":"tcpActiveConn","metricTargetAverageUtilization":20},{"metricType":"SLB_QPS","MetricTargetAverageUtilization":25,"SlbProject":"aliyun-sae-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","SlbLogstore":"function-log","Vport":"80"},{"metricType":"SLB_RT","MetricTargetAverageUtilization":35,"SlbProject":"aliyun-sae-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","SlbLogstore":"sae-log","Vport":"80"}]&MinReadyInstances=3&MinReadyInstanceRatio=-1 HTTP/1.1
Host:sae.aliyuncs.com
Content-Type:application/json
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<UpdateApplicationScalingRuleResponse>
<RequestId>91F93257-7A4A-4BD3-9A7E-2F6EAE6D****</RequestId>
<TraceId>0a98a02315955564772843261e****</TraceId>
<Data>
<Timer>
<EndDate>2021-04-25</EndDate>
<BeginDate>2021-03-25</BeginDate>
<Schedules>
<AtTime>08:00</AtTime>
<TargetReplicas>3</TargetReplicas>
</Schedules>
<Period>* * *</Period>
</Timer>
<UpdateTime>1616642248938</UpdateTime>
<AppId>7171a6ca-d1cd-4928-8642-7d5cfe69****</AppId>
<CreateTime>1616642248938</CreateTime>
<LastDisableTime>1641882854484</LastDisableTime>
<ScaleRuleEnabled>true</ScaleRuleEnabled>
<ScaleRuleType>timing</ScaleRuleType>
<Metric>
<Metrics>
<MetricTargetAverageUtilization>20</MetricTargetAverageUtilization>
<MetricType>CPU</MetricType>
</Metrics>
<MaxReplicas>3</MaxReplicas>
<MinReplicas>1</MinReplicas>
</Metric>
<ScaleRuleName>test</ScaleRuleName>
</Data>
</UpdateApplicationScalingRuleResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "91F93257-7A4A-4BD3-9A7E-2F6EAE6D****",
"TraceId" : "0a98a02315955564772843261e****",
"Data" : {
"Timer" : {
"EndDate" : "2021-04-25",
"BeginDate" : "2021-03-25",
"Schedules" : [ {
"AtTime" : "08:00",
"TargetReplicas" : 3
} ],
"Period" : "* * *"
},
"UpdateTime" : 1616642248938,
"AppId" : "7171a6ca-d1cd-4928-8642-7d5cfe69****",
"CreateTime" : 1616642248938,
"LastDisableTime" : 1641882854484,
"ScaleRuleEnabled" : true,
"ScaleRuleType" : "timing",
"Metric" : {
"Metrics" : [ {
"MetricTargetAverageUtilization" : 20,
"MetricType" : "CPU"
} ],
"MaxReplicas" : 3,
"MinReplicas" : 1
},
"ScaleRuleName" : "test"
}
}
错误码
HttpCode | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | InvalidScalingRuleDate.BeginAfterEnd | The specified beginning time is later than the ending time. | 指定的开始时间晚于结束时间。 |
400 | InvalidScalingRuleDate.Format | The specified date is invalid. | 指定的日期不合法。正确的格式为yyyy-MM-dd。 |
400 | InvalidScalingRuleName.NotFound | The specified ScalingRuleName does not exist. | 指定的ScalingRuleName不存在。 |
400 | InvalidScalingRuleTime.Conflict | The specified scaling rule time is invalid. Another schedule has been set for the specified time range. Please set a different time. | 指定的弹性策略时间无效。该时间段已设置过定时策略,请重新选择时间设置。 |
400 | InvalidScalingRuleTime.Format | The specified time is invalid. | 指定的时间不合法。正确的格式为HH:mm。 |
400 | QuotaExceeded.ScalingRuleTime | The maximum number of scaling policy trigger time is exceeded. | 弹性策略触发时间到达上限。 |
400 | NoComputeResourceQuota.Exceed | Your compute resource is insufficient. Please submit a ticket to raise the quota. | 计算资源不足,请提交工单增加计算资源额度。 |
400 | NoComputeResourceQuota.App.Exceed | You can create %s instances for each application. Please submit a ticket to raise the quota. | 每个应用只允许创建%s个实例,请提交工单增加计算资源额度。 |
400 | NoComputeResourceQuota.User.Exceed | Your account is limited to create %s instances. Please submit a ticket to raise the quota. | 您的账户限额%s个实例,请提交工单增加计算资源额度。 |
400 | System.Upgrading | The system is being upgraded. Please try again later. | 系统正在升级,请稍后操作。 |
400 | MinReadyInstances.Not.Smaller.Replicas | The minimum number of available instances must be less than the number of application instances. | 最小可用实例数必须小于应用实例数。 |
400 | MinReadyInstanceRatio.Invalid | The ratio of minimum available instances must be between 0 and 100. | 最小存活实例数比例值必须在0~100之间。 |
访问错误中心查看更多错误码。