全部产品
Search
文档中心

:UpdateApplicationScalingRule - 修改弹性策略

更新时间:Dec 05, 2024

更新应用弹性伸缩策略。

接口说明

使用须知

如果单个应用需要弹出超过 50 个实例,请联系 SAE 技术支持并申请白名单。更多信息,请参见联系我们

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
sae:UpdateApplicationScalingRuleupdate
*Application
acs:sae:{#regionId}:{#accountId}:application/{#namespaceid}/{#appid}

请求语法

PUT /pop/v1/sam/scale/applicationScalingRule HTTP/1.1

请求参数

名称类型必填描述示例值
AppIdstring

应用 ID。

7171a6ca-d1cd-4928-8642-7d5cfe69****
ScalingRuleNamestring

已创建成功的弹性策略名。必须以小写字母开头,仅可包含小写字母、数字及短划线(-),不超过 32 个字符。

说明 弹性伸缩策略创建成功后,不可修改策略名。
timer-0800-2100
ScalingRuleTimerstring

定时弹性策略的配置。当您选择定时弹性策略或使用 SDK 设置时,该参数必选。

参数说明如下:

  • beginDateendDatebeginDate 为起始日期,endDate 为结束日期,用于配置定时弹性伸缩策略的时间。取值说明如下:
    • 当取值均为 null 时,表示长期执行,为默认值。
    • 当取值为具体日期时,例如 beginDate2021-03-25endDate2021-04-25,表示执行有效期为 1 个月。
  • period:执行定时弹性伸缩策略的周期。取值说明如下:
    • * * *:每天指定时间执行定时策略。
    • * * Fri,Mon:每周指定天数的指定时间执行定时策略,支持选择多星期几,GMT+8 时区。取值说明如下:
      • Sun:星期日
      • Mon:星期一
      • Tue:星期二
      • Wed:星期三
      • Thu:星期四
      • Fri:星期五
      • Sat:星期六
    • 1,2,3,28,31 * *:每月指定日期的指定时间执行定时策略。取值范围[1, 31]。若当月无 31 日,则跳过该日期执行定时策略。
  • schedules:弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。最多支持 20 个时间点。参数说明如下:
    • atTime:触发时间点。支持格式时:分,例如08:00

    • targetReplicas:该参数可以指定应用的实例数,也可以是每次部署最小存活的实例数。取值范围[1, 50]。

      说明 每次滚动部署最小存活的实例数建议大于等于 1,保证业务不中断。如果设置为 0,应用在升级过程中将会中断业务。
{"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]}
ScalingRuleMetricstring

监控指标弹性策略的配置。当您选择监控指标弹性策略设置时,该参数必选。

参数说明如下:

  • maxReplicas:应用最大实例数。
  • minReplicas:应用最小实例数。
  • metricType:监控指标触发条件。
    • CPU:CPU 使用率。
    • MEMORY:内存使用率。
    • QPS:JAVA 应用 1 分钟内单个实例的平均 QPS。
    • RT:JAVA 应用 1 分钟内应用所有服务接口平均 RT 值。
    • tcpActiveConn:30 秒内单个实例的平均 TCP 活跃连接数。
    • SLB_QPS:15 秒内单个实例的平均公网 SLB QPS。
    • SLB_RT:15 秒内公网 SLB 平均响应时间。
    • INTRANET_SLB_QPS:15 秒内单个实例的平均私网 SLB QPS。
    • INTRANET_SLB_RT:15 秒内私网 SLB 平均响应时间。
  • metricTargetAverageUtilization:根据不同的 metricType,设置对应的监控指标的目标值。
    • CPU 使用率目标值,单位为百分比。
    • 内存使用率目标值,单位为百分比。
    • QPS,单位为秒。
    • 响应时间,单位为毫秒。
    • TCP 活跃连接数平均值,单位为个/秒。
    • 公网 SLB QPS,单位为秒。
    • 公网 SLB 响应时间,单位为毫秒。
    • 私网 SLB QPS,单位为秒。
    • 私网 SLB 响应时间,单位为毫秒。
  • slbId:SLB ID。
  • slbProject:日志服务 Project。
  • slbLogstore:日志服务 Logstore。
  • vport:SLB 监听端口,支持 HTTP 协议和 HTTPS 协议。
  • scaleUpRules:应用扩容规则。
  • scaleDownRules:应用缩容规则。
  • step:弹性扩容或缩容步长。单位时间内最多扩容或缩容的实例数。
  • disabled:是否禁止缩容。开启后将永远不会缩容该应用的实例,能有效防止在流量高峰期缩容造成业务风险。
    • true:开启。
    • false:关闭。默认值。
  • stabilizationWindowSeconds:扩容或缩容的冷却时间。取值范围[0, 3600],单位为秒。默认为 0 秒。
说明 您可以选择设置一个或多个监控指标。当设置多个监控指标时,只要任何一个指标大于或者等于目标值,则应用进行扩容,扩容后实例数不高于应用最大实例数;如果所有指标均小于目标值,则应用进行缩容,缩容后实例数不低于应用最小实例数。
{"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}}
MinReadyInstancesinteger

最小存活实例数。取值说明如下:

  • 如果设置为 0,应用在升级过程中将会中断业务。
  • 如果设置为**-1**,最小存活实例数将使用系统推荐值,即取现有实例数的 25%。如果当前为 5 个实例,5×25%=1.25,向上取整后,最小存活实例数为 2。
说明 每次滚动部署最小存活的实例数建议≥1,保证业务不中断。
3
MinReadyInstanceRatiointeger

最小存活实例数百分比。取值说明如下:

  • -1:初始化值,表示不采用百分比。
  • 0~100:单位为百分比,向上取整。例如设置为 50%,如果当前为 5 个实例,则最小存活实例数为 3。
说明 MinReadyInstanceMinReadyInstanceRatio 同时传递时,且 MinReadyInstanceRatio 的取值非**-1**时,以 MinReadyInstanceRatio 参数为准。假设 MinReadyInstances 取值为 5MinReadyInstanceRatio 取值为 50,则会用 50 来计算最小存活实例数。
-1

返回参数

名称类型描述示例值
object

返回信息。

RequestIdstring

请求 ID。

91F93257-7A4A-4BD3-9A7E-2F6EAE6D****
TraceIdstring

调用链 ID,用于精确查询调用信息。

0a98a02315955564772843261e****
Dataobject

返回结果。

Timerobject

定时弹性伸缩。

EndDatestring

定时弹性伸缩策略的短期结束日期。取值说明如下:

  • BeginDateEndDate 取值均为 null 时,表示长期执行,为默认值。
  • 当取值为具体日期时,例如 BeginDate 为 2021-03-25,EndDate 为 2021-04-25,表示执行有效期为 1 个月。
2021-04-25
BeginDatestring

定时弹性伸缩策略的短期起始日期。取值说明如下:

  • BeginDateEndDate 取值均为 null 时,表示长期执行,为默认值。
  • 当取值为具体日期时,例如 BeginDate 为 2021-03-25,EndDate 为 2021-04-25,表示执行有效期为 1 个月。
2021-03-25
Schedulesarray<object>

单天内触发时间点。

Scheduleobject

时间点数据。

AtTimestring

时间点。格式:时:分

08:00
TargetReplicasinteger

目标实例数。

3
MinReplicasinteger

最小实例数。

1
MaxReplicasinteger

最大实例数。

10
Periodstring

执行定时弹性伸缩策略的周期。取值说明如下:

  • * * *:每天指定时间执行定时策略。

  • * * Fri,Mon:每周指定天数的指定时间执行定时策略,支持多选,GMT+8 时区。取值说明如下:

    • Sun:星期日
    • Mon:星期一
    • Tue:星期二
    • Wed:星期三
    • Thu:星期四
    • Fri:星期五
    • Sat:星期六
  • 1,2,3,28,31 * *:每月指定日期的指定时间执行定时策略,支持多选。取值范围[1,31]。若当月无 31 日,则跳过该日期执行定时策略。

* * *
UpdateTimelong

弹性伸缩策略的更新时间。单位:毫秒。

1616642248938
AppIdstring

应用 ID。

7171a6ca-d1cd-4928-8642-7d5cfe69****
CreateTimelong

弹性伸缩策略的创建时间。单位:毫秒。

1616642248938
LastDisableTimelong

最近一次禁用弹性伸缩策略的时间。

1641882854484
ScaleRuleEnabledboolean

是否启用弹性伸缩策略。取值说明如下:

  • true:启用状态。
  • false:禁用状态。
true
ScaleRuleTypestring

弹性伸缩策略类型。取值说明如下:

  • timing:定时弹性。
  • metric:监控指标弹性。
  • mix:混合弹性。
timing
Metricobject

监控指标弹性伸缩。

Metricsarray<object>

监控指标弹性伸缩列表。

Metricobject

监控指标数据。

MetricTargetAverageUtilizationinteger

监控指标的目标值。

  • CPU 使用率目标值,单位为百分比。
  • 内存使用率目标值,单位为百分比。
  • QPS,单位为秒。
  • 响应时间,单位为毫秒。
  • TCP 活跃连接数平均值,单位为个/秒。
  • 公网 SLB QPS,单位为秒。
  • 公网 SLB 响应时间,单位为毫秒。
  • 私网 SLB QPS,单位为秒。
  • 私网 SLB 响应时间,单位为毫秒。
20
MetricTypestring

监控指标触发条件。取值说明如下:

  • CPU:CPU 使用率。
  • MEMORY:内存使用率。
  • QPS:JAVA 应用 1 分钟内单个实例的平均 QPS。
  • RT:JAVA 应用 1 分钟内应用所有服务接口平均 RT 值。
  • tcpActiveConn:30 秒内单个实例的平均 TCP 活跃连接数。
  • SLB_QPS:15 秒内单个实例的平均公网 SLB QPS。
  • SLB_RT:15 秒内公网 SLB 平均响应时间。
  • INTRANET_SLB_QPS:15 秒内单个实例的平均私网 SLB QPS。
  • INTRANET_SLB_RT:15 秒内私网 SLB 平均响应时间。
CPU
SlbProjectstring

SLB 访问日志 Project。

test
SlbLogstorestring

SLB 访问日志 Logstore。

test
Vportstring

SLB 端口。

80
SlbIdstring

SLB 实例 ID。

lb-xxx
MaxReplicasinteger

最大实例数。

3
MinReplicasinteger

最小实例数。

1
ScaleRuleNamestring

弹性伸缩策略名称。

test
Messagestring

附加信息。取值说明如下:

  • 请求正常,返回 success
  • 请求异常,返回具体异常错误码。
success
ErrorCodestring

错误码。取值说明如下:

  • 请求成功:不返回 ErrorCode 字段。
  • 请求失败:返回 ErrorCode 字段。具体信息,请参见本文的错误码列表。
Codestring

接口状态或 POP 错误码。取值说明如下:

  • 2xx:成功。
  • 3xx:重定向。
  • 4xx:请求错误。
  • 5xx:服务器错误。
200
Successboolean

重启应用实例是否成功。取值说明如下:

  • true:重启成功。
  • false:重启失败。
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,
          "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",
    "EnableIdle": true
  },
  "Message": "success",
  "ErrorCode": "空",
  "Code": "200",
  "Success": true
}

错误码

HTTP status code错误码错误信息描述
400InvalidScalingRuleDate.BeginAfterEndThe specified beginning time is later than the ending time.指定的开始时间晚于结束时间。
400InvalidScalingRuleDate.FormatThe specified date is invalid.指定的日期不合法。正确的格式为yyyy-MM-dd。
400InvalidScalingRuleName.NotFoundThe specified ScalingRuleName does not exist.指定的ScalingRuleName不存在。
400InvalidScalingRuleTime.ConflictThe specified scaling rule time is invalid. Another schedule has been set for the specified time range. Please set a different time.指定的弹性策略时间无效。该时间段已设置过定时策略,请重新选择时间设置。
400InvalidScalingRuleTime.FormatThe specified time is invalid.指定的时间不合法。正确的格式为HH:mm。
400QuotaExceeded.ScalingRuleTimeThe maximum number of scaling policy trigger time is exceeded.弹性策略触发时间到达上限。
400NoComputeResourceQuota.ExceedYour compute resource is insufficient. Please contact us to raise the quota.-
400NoComputeResourceQuota.App.ExceedYou can create %s instances for each application. Please submit a ticket to raise the quota.每个应用只允许创建%s个实例,请加入钉群32874633联系技术产品专家进行咨询。
400NoComputeResourceQuota.User.ExceedYour account is limited to create %s instances. Please submit a ticket to raise the quota.您的账户限额%s个实例,请加入钉群32874633联系技术产品专家进行咨询。
400System.UpgradingThe system is being upgraded. Please try again later.系统正在升级,请稍后操作。
400MinReadyInstances.Not.Smaller.ReplicasThe minimum number of available instances must be less than the number of application instances.最小可用实例数必须小于应用实例数。
400MinReadyInstanceRatio.InvalidThe ratio of minimum available instances must be between 0 and 100.最小存活实例数比例值必须在0~100之间。
400Application.ChangerOrderRunningAn application change process is in progress. Please try again later.应用有变更流程正在执行,请稍后重试。

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2024-08-30OpenAPI 错误码发生变更、OpenAPI 入参发生变更、OpenAPI 返回结构发生变更查看变更详情
2023-05-24OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更查看变更详情
2022-12-19OpenAPI 错误码发生变更、OpenAPI 返回结构发生变更查看变更详情
2022-11-09OpenAPI 错误码发生变更查看变更详情