调用GetProvisionConfig接口获取预留配置。

背景信息

预留模式通过预留适量函数实例来响应函数调用请求,降低冷启动的发生次数,为时延敏感的在线业务提供更好的服务响应。预留模式配置的固定预留值可能会导致预留函数实例利用不充分,您可以通过定时弹性伸缩和指标追踪弹性伸缩两种模式解决该问题。具体信息,请参见预留模式实例的自动弹性伸缩

请求头

该接口无特殊请求头,关于公共请求头信息,请参见公共参数

请求语法

GET /services/{serviceName.[qualifier]}/functions/{functionName}/provision-config HTTP/1.1

请求参数

名称 类型 位置 是否必选 示例值 描述
serviceName String Path service_name

服务的名称。

qualifier String Path test

服务的版本或别名。

functionName String Path function_name

函数的名称。

Object Body

函数定义。

target Long Body 1

预留的目标资源个数。

返回数据

名称 类型 示例值 描述
ETag String provisionconfig

确保实际更改的配置和期望更改的配置是一致的。

resource String 198611443057****#service_name#test#function_name

资源的描述。

target Long 15

预留的目标资源个数。

current Long 1

实际资源的个数。

scheduledActions Array

定时伸缩策略:通过定时伸缩策略您可以更加灵活地配置预留的函数实例,在指定时间将预留的函数实例量设定成需要的值,使函数实例量更好地贴合业务的并发量。

name String demoScheduler

定时任务的名称。

startTime String 2020-10-10T10:10:10Z

定时伸缩的起始生效时间。

endTime String 2020-12-10T10:10:10Z

定时伸缩的结束生效时间。

target Long 10

预留的目标资源个数。

scheduleExpression String cron(0 30 8 * * *)

定时信息,支持两种格式。具体信息,请参见参数说明

targetTrackingPolicies Array

指标伸缩策略:根据函数实例并发利用率的情况每分钟对预留资源进行一次伸缩。

  • 当指标超过追踪值metricTarget时,开始以积极的策略扩容预留模式的函数实例量,以使得指标值恢复到追踪值metricTarget附近。
  • 当指标低于追踪值metricTarget时,开始以保守的策略缩容预留模式的函数实例量,以使得指标值逐渐恢复到追踪值metricTarget附近。

当您在系统中设置了伸缩最大值和最小值时,预留的函数实例量会在最大值与最小值之间进行伸缩,超出最大值时将停止扩容,低于最小值时将停止缩容。

name String demoTargetTracking

定时任务的名称。

startTime String 2020-10-10T10:10:10Z

指标伸缩的起始生效时间。

endTime String 2020-12-10T10:10:10Z

指标伸缩的结束生效时间。

metricType String ProvisionedConcurrencyUtilization

追踪的指标类型。

metricTarget double 0.6

指标的追踪值。

minCapacity Long 10

缩容的最小值。

maxCapacity Long 100

扩容的最大值。

示例

请求示例

GET /2016-08-15/services/service_name.test/functions/function_name/provision-config HTTP/1.1 
公共请求头

正常返回示例

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "resource": "198611443057****#service_name#test#function_name",
  "current": 1
  "scheduledActions": [
      {
        "endTime": "2020-12-10T10:10:10Z",
        "name": "demoScheduler",
        "scheduleExpression": "cron(0 30 8 * * *)",
        "startTime": "2020-10-10T10:10:10Z",
        "target": 5
      }
    ],
  "target": 15,
  "targetTrackingPolicies": [
      {
        "endTime": "2020-12-10T10:10:10Z",
        "maxCapacity": 100,
        "metricTarget": 0.6,
        "metricType": "ProvisionedConcurrencyUtilization",
        "minCapacity": 10,
        "name": "demoScheduler",
        "startTime": "2020-10-10T10:10:10Z"
     ]
  }
}