创建应用弹性伸缩策略。
接口说明
使用须知
- 您最多可以为 1 个应用创建 5 条弹性策略。
- 您最多可以为 1 条定时弹性策略,创建 20 条单天内触发时间点。
- 弹性策略启用时,请勿手动执行应用生命周期管理操作,例如应用扩缩容、部署应用、更改规格、重启应用或停止应用。如果您需要对应用执行该类操作,请停用弹性策略后,再手动执行操作。
- 如果当前应用处于扩容、缩容、部署(单批、分批或灰度)、更改规格、重启或停止等过程中,该应用暂时无法添加或者启动弹性策略。
- 如果单个应用需要弹出超过 50 个实例,请联系 SAE 技术支持并申请白名单。更多信息,请参见联系我们。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
sae:CreateApplicationScalingRule | create |
|
| 无 |
请求语法
POST /pop/v1/sam/scale/applicationScalingRule HTTP/1.1
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
AppId | string | 是 | 应用 ID。 | 7171a6ca-d1cd-4928-8642-7d5cfe69**** |
ScalingRuleName | string | 是 | 自定义的弹性伸缩策略名。应用内,策略名称不可重复,必须以小写字母开头,仅可包含小写字母、数字及短划线(-),不超过 32 个字符。 说明
弹性伸缩策略创建成功后,不可修改策略名。
| timer-0800-2100 |
ScalingRuleType | string | 是 | 弹性伸缩策略类型。取值说明如下:
说明
| timing |
ScalingRuleTimer | string | 否 | 定时弹性策略的配置。当您选择定时弹性策略或使用 SDK 设置时,该参数必选。 参数说明如下:
| {"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]} |
ScalingRuleMetric | string | 否 | 监控指标弹性策略的配置。当您选择监控指标弹性策略设置时,该参数必选。 参数说明如下:
说明
您可以选择设置一个或多个监控指标。当设置多个监控指标时,只要任何一个指标大于或者等于目标值,则应用进行扩容,扩容后实例数不高于应用最大实例数;如果所有指标均小于目标值,则应用进行缩容,缩容后实例数不低于应用最小实例数。
| {"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 | 否 | 最小存活实例数。取值说明如下:
说明
每次滚动部署最小存活的实例数建议≥1,保证业务不中断。
| 3 |
MinReadyInstanceRatio | integer | 否 | 最小存活实例数百分比。取值说明如下:
说明
当 MinReadyInstance 和 MinReadyInstanceRatio 同时传递时,且 MinReadyInstanceRatio 的取值非**-1**时,以 MinReadyInstanceRatio 参数为准。假设 MinReadyInstances 取值为 5,MinReadyInstanceRatio 取值为 50,则会用 50 来计算最小存活实例数。
| -1 |
ScalingRuleEnable | boolean | 否 | 是否启用弹性伸缩策略。取值说明如下:
| true |
返回参数
示例
正常返回示例
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,
"MaxReplicas": 10,
"MinReplicas": 5
}
],
"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",
"EnableIdle": true
},
"Message": "success",
"ErrorCode": "空",
"Code": "200",
"Success": true
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | InstanceExist.ScalingRuleName | The specified ScalingRuleName already exists. | 指定的弹性策略名称已存在。 |
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.ScalingRule | The maximum number of application scaling rules is exceeded. | 应用弹性策略数量到达上限。 |
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.Exceed | Your compute resource is insufficient. Please contact us to raise the quota. | - |
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 | OperationDenied.SDKNotSupported | Metrics is not supported in SDK | SDK未开放指标弹性规则。 |
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之间。 |
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2024-08-30 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更、OpenAPI 返回结构发生变更 | 查看变更详情 |
2023-05-24 | OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更 | 查看变更详情 |
2023-05-23 | OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更 | 查看变更详情 |
2022-12-19 | OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更 | 查看变更详情 |