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