为函数配置预留实例
“华北-北京四、华东-上海一”区域已支持配置定时伸缩预留实例。
概述
函数工作流提供了按量和预留两种类型的实例。
- 按量实例是由函数工作流根据用户使用函数的实际情况来创建和释放,当函数工作流收到函数的调用请求时,自动为此请求分配执行环境。
- 预留实例是将函数实例的创建和释放交由用户管理,当您为某一函数创建了预留实例,函数工作流收到此函数的调用请求时,会优先将请求转发给您的预留实例,当请求的峰值超过预留实例处理能力时,剩余部分的请求将会转发给按量实例,由函数工作流自动为您分配执行环境。
预留实例在创建完成后,会自动加载该函数的代码、依赖包以及执行初始化入口函数,且预留实例会常驻环境,消除冷启动对业务的影响。(注意:不要依赖预留实例本身的初始化函数去执行一次性业务。)
预留实例当前支持配置固定数量的预留实例,也支持配置定时伸缩的预留实例、配置按指标弹性伸缩的预留实例和配置智能推荐的预留实例。
用户默认没有权限使用指标策略和智能推荐策略,如果需要使用该功能,请在工单系统提交工单添加白名单。
配置固定数量的预留实例
直接创建固定个数的预留实例前,确保FunctionGraph控制台已存在需要创建预留实例的目标函数。
- 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
- 选择待配置的函数,单击进入配置详情页。
- 选择“设置 > 并发”,单击“添加”,开始配置。
图1 单击“添加”
- 参见表1,填写参数。
您可以给函数对应的版本或者别名创建指定数量的预留实例,其中预留实例的数量不能超过并发实例数配额和单函数最大实例数。图2 基础配置
表1 基础配置说明 参数
说明
函数名称
展示当前配置预留实例的函数的名称。
类型
根据实际业务情况,选择“版本”或“别名”。
选择版本
仅当类型选择“版本”时,需设置此参数。
选择别名
仅当类型选择“别名”时,需设置此参数。
预留实例数
设置最小实例数,输入值不能超过1000。配置最小实例数后,函数工作流会为您创建固定数目的函数实例,并且在您将最小实例数设置为0之前预留实例会持续运行。
闲置模式
开启此参数,表示预留实例在无调用的时候暂停CPU,节省资源,降低费用成本。
- 别名和对应的版本不可以同时配置预留实例。比如,latest版本对应的别名为1.0,在latest版本下进行了预留实例配置,则在别名1.0下不能再进行预留实例配置,反之同理。
- 闲置模式开启后,因为在最初阶段会涉及实例的初始化及模式转换,因此该段时间会以预留实例的非闲置模式计费标准进行计费。
- 当函数调用并发数大于预留实例数量时,超出部分会分配给按量实例,这部分流量仍然有冷启动。
- 配置完成后,单击“确定”,在“预留实例策略配置”列表展示已添加的“策略配置”。
图3 列表展示
配置定时伸缩的预留实例
用户配置预留实例时,能够配置指定的时间段、cron表达式及其对应的预留实例数量。函数服务能够在该时间段中,根据cron表达式更新预留实例的数量,如果时间段超过了该时间段,则将预留实例数量调整到配置的固定值的预留实例数量。
- 参见表1进行基础配置,完成后单击“添加策略”,进行弹性预留策略配置。
图4 添加策略
- 参见表2,填写参数。
图5 添加策略
表2 弹性策略配置说明 参数
说明
策略名称
自定义策略名称。
Cron表达式(UTC)
您可以参见Cron表达式规则,填写此参数。
如果按照北京时间配置,请将当前时间减去8小时。支持指定时区,格式为:CRON_TZ=Asia/Shanghai 0 */10 * * * *。
生效时间
生效时间为本地时间,即cron表达式的生效时间窗。
只有当时间在时间窗内时,该弹性策略才会生效,当该函数的所有弹性策略的生效时间窗都不生效时,那么预留实例数就会还原到基础配置中的最小实例数。
比如配置了2条定时策略,生效时间分别为2022/06/29 11:08:33 - 2022/06/29 12:08:33 和 2022/06/29 13:08:33 - 2022/06/29 14:08:33,那么在时间2022/06/29 12:08:33 - 2022/06/29 13:08:33以及2022/06/29 14:08:33 - ?之间,在策略生效时间外,则会将预留实例数还原到基础配置中的最小实例数。
预留实例数
需要创建的预留实例数。
根据实际业务场景,填写当前策略生效时创建的预留实例的个数。
说明:最小实例数必须大于或等于基础配置里的最小实例数。
- 配置完成后,单击“确定”,在“预留实例策略配置”列表展示已添加的“策略配置”。
图6 列表展示
- 单击“操作 > 编辑”,修改弹性策略信息、添加策略。
- 单击“操作 > 删除”,删除版本或别名下的预留实例策略。
- 预留实例将根据添加的弹性策略配置执行,您可以在“预留实例策略配置”列表,单击“限定符”,选择“弹性策略名称”,查看函数并发执行实例数。
图7 查看并发执行实例数
时间业务是可以配置多条定时策略,如配置早晨8点的时候,配置策略更新预留实例数为100,而21点的时候配置策略更新为10个。
配置按指标弹性伸缩的预留实例
用户配置预留实例时,能够根据业务的指标(当前只支持用户并发数)动态调整函数的预留实例数,配置指标策略时,需要为函数配置委托且该委托包含AOM服务的指标查询权限和函数服务的查询配置权限。
- 参见表1进行基础配置,完成后单击“添加策略”,进行弹性预留策略配置。
图8 添加策略
- 参见表3,填写参数。
图9 配置指标策略
表3 指标策略配置说明 参数
说明
策略名称
自定义策略名称。
利用率目标值
取值为1-99,即用户实际使用到的预留实例数与该函数总的预留实例数的比例。当比例高于目标值时,函数服务会逐步缩容预留实例数;而当比例低于目标值时,函数服务会直接创建对应数量的预留实例,调整的周期为1分钟一次(指标生成也是1分钟一次,所以调整预留实例会滞后1-2分钟)。
预留实例数
需要创建的预留实例数。
指标策略更新预留实例数时的最新预留实例数,如根据策略只需要创建1个预留实例,而最小实例数配置为5时,则实际会创建5个预留实例。
说明:最小实例数必须大于或等于基础配置里的最小实例数。
表4 委托权限配置 服务
普通权限
细粒度权限
FunctionGraph服务
FunctionGraph ReadOnlyAccess
functiongraph:function:getConfig
- 配置完成后,单击“确定”,在“预留实例策略配置”列表展示已添加的“策略配置”。
图10 列表展示
- 单击“操作 > 编辑”,修改弹性策略信息、添加策略。
- 单击“操作 > 删除”,删除版本或别名下的预留实例策略。
- 预留实例将根据添加的弹性策略配置执行,您可以在“预留实例策略配置”列表中,单击“限定符”,选择“弹性策略名称”,查看函数并发执行实例数。
图11 查看并发执行实例数
定时策略和指标策略可以一起添加。当一起添加时,该类型的策略的预留实例数的最小值不得低于另外一种策略最新更新的预留实例数。如8:59分,指标策略更新预留实例数为9个,而10点的定时策略配置的预留实例数是5个,那么10点最终更新的预留实例为9个;而下一条定时策略是11点生效,那么10点到11点指标策略更新的预留实例数最小不会低于5个。
配置智能推荐的预留实例
FunctionGraph基于特征画像与负载预测技术,提供了预留实例的智能推荐策略,使预留实例随负载模式动态变化,波峰时提前扩容,波谷时释放多余预留实例。
用户配置预留实例时,能够选择智能推荐策略,支持高性能、均衡、低成本三种选项,由系统根据用户负载模式,基于负载预测动态调整预留实例数量,适应负载的波峰波谷变化,并对相应的预留实例成本与性能提供直观展示。(注:智能推荐策略与其他预留实例弹性策略不能共存,且同一版本或别名只能存在一个。)
- 参见下图单击“添加策略”,进行弹性预留策略配置。
图12 添加策略
- 选择“智能推荐策略”,用户根据展示的预留实例性能与成本图结合自身需求,可选择高性能、均衡、低成本三种选项之一。
图13 智能推荐策略
- 选择完成后,单击“确定”,在“预留实例策略配置”列表展示已添加的“策略配置”。
图14 预留实例策略配置
- 单击“操作 > 编辑”,查看和修改当前弹性策略信息。
- 单击“操作 > 删除”,删除版本或别名下的预留实例策略。
- 预留实例将根据选择的智能推荐策略选项执行,您可以在“预留实例策略配置”列表,单击“限定符”,选择“弹性策略名称”,查看预留实例成本及性能。