更新应用弹性伸缩策略。
使用须知
如果单个应用需要弹出超过50个实例,请联系SAE技术支持并申请白名单。更多信息,请参见联系我们。
调试
您可以在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,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"},{"metricType":"SLB_RT","MetricTargetAverageUtilization":35,"slbId":"lb-xxx","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 | 目标实例数。 |
MinReplicas | Integer | 1 | 最小实例数。 |
MaxReplicas | Integer | 10 | 最大实例数。 |
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 | 监控指标触发条件。取值说明如下:
|
SlbProject | String | test | SLB访问日志Project。 |
SlbLogstore | String | test | SLB访问日志Logstore。 |
Vport | String | 80 | SLB端口。 |
SlbId | String | lb-xxx | SLB实例ID。 |
MaxReplicas | Integer | 3 | 最大实例数。 |
MinReplicas | Integer | 1 | 最小实例数。 |
ScaleRuleName | String | test | 弹性伸缩策略名称。 |
Message | String | success | 附加信息。取值说明如下:
|
ErrorCode | String | 空 | 错误码。取值说明如下:
|
Code | String | 200 | 接口状态或POP错误码。取值说明如下:
|
Success | Boolean | true | 重启应用实例是否成功。取值说明如下:
|
示例
请求示例
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,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"},{"metricType":"SLB_RT","MetricTargetAverageUtilization":35,"slbId":"lb-xxx","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=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>
<MinReplicas>1</MinReplicas>
<MaxReplicas>10</MaxReplicas>
</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>
<SlbProject>test</SlbProject>
<SlbLogstore>test</SlbLogstore>
<Vport>80</Vport>
<SlbId>lb-xxx</SlbId>
</Metrics>
<MaxReplicas>3</MaxReplicas>
<MinReplicas>1</MinReplicas>
</Metric>
<ScaleRuleName>test</ScaleRuleName>
</Data>
<Message>success</Message>
<Code>200</Code>
<Success>true</Success>
</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,
"MinReplicas" : 1,
"MaxReplicas" : 10
} ],
"Period" : "* * *"
},
"UpdateTime" : 1616642248938,
"AppId" : "7171a6ca-d1cd-4928-8642-7d5cfe69****",
"CreateTime" : 1616642248938,
"LastDisableTime" : 1641882854484,
"ScaleRuleEnabled" : true,
"ScaleRuleType" : "timing",
"Metric" : {
"Metrics" : [ {
"MetricTargetAverageUtilization" : 20,
"MetricType" : "CPU",
"SlbProject" : "test",
"SlbLogstore" : "test",
"Vport" : "80",
"SlbId" : "lb-xxx"
} ],
"MaxReplicas" : 3,
"MinReplicas" : 1
},
"ScaleRuleName" : "test"
},
"Message" : "success",
"Code" : "200",
"Success" : true
}
错误码
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.App.Exceed | You can create %s instances for each application. Please submit a ticket to raise the quota. | 每个应用只允许创建%s个实例,请加入钉群32874633联系技术产品专家进行咨询。 |
400 | NoComputeResourceQuota.User.Exceed | Your account is limited to create %s instances. Please submit a ticket to raise the quota. | 您的账户限额%s个实例,请加入钉群32874633联系技术产品专家进行咨询。 |
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之间。 |
400 | Application.ChangerOrderRunning | An application change process is in progress. Please try again later. | 应用有变更流程正在执行,请稍后重试。 |
访问错误中心查看更多错误码。