调用PutProvisionConfig接口设置预留配置。

背景信息

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

请求头

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

请求语法

PUT /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 15

预留的目标资源个数。

scheduledActions Array Body

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

name String Body demoScheduler

定时任务的名称。

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

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

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

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

target Long Body 10

预留的目标资源个数。

scheduleExpression String Body cron(0 30 8 * * *)

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

targetTrackingPolicies Array Body

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

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

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

name String Body demoTargetTracking

定时任务的名称。

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

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

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

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

metricType String Body ProvisionedConcurrencyUtilization

追踪的指标类型。

metricTarget double Body 0.6

指标的追踪值。

minCapacity Long Body 10

缩容的最小值。

maxCapacity Long Body 100

扩容的最大值。

返回数据

名称 类型 示例值 描述
resource String 19861144****3057#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 5

预留的目标资源个数。

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

扩容的最大值。

示例

请求示例

PUT /2016-08-15/services/service_name.test/functions/function_name/provision-config HTTP/1.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"
        }
    ]
}

正常返回示例

JSON格式

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

{
  "current" : "1",
  "resource" : "19861144****3057#service_name#test#function_name",
  "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"
  } ]
}