配置函数的动态内存
概述
默认情况下,一个函数唯一绑定了一个资源规格。开启动态内存可以让您在处理指定请求时,设置本次处理函数实例使用的资源规格,如果您不指定,函数将使用默认配置的资源规格。
应用场景
以使用函数做视频转码为例:视频文件大小从MB到GB,不同编码格式和分辨率对转码需要的计算资源要求差别很大。为了保证转码性能,通常需要配置一个很大的资源规格,但是在处理低分辨率(例如短视频)视频时,会造成资源浪费。您可以把转码业务实现为元数据获取和转码两个函数,根据元数据信息指定转码函数的资源规格,最小化资源占用,达到更低的成本开销。
前提条件
已创建函数,若未创建,请参见创建空白函数。
操作步骤
- 登录FunctionGraph控制台,在左侧导航栏选择“函数 > 函数列表”,单击已创建的函数名称。
图1 选择已创建的函数
- 在“设置 > 高级设置”页签下,开启“动态内存”。
- 通过本地工具调用同步执行函数或异步执行函数接口,然后在请求头的数据结构中添加请求头“X-Cff-Instance-Memory”,值可以设置为128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096、8192、10240。
此处以通过postman调用为例,在“Headers”中添加请求头“X-Cff-Instance-Memory”,设置value值为512,调用成功返回“200”。
图2 添加请求头并调用
- 未开启动态内存,调用接口时默认取创建函数时设置的内存大小;
- 若配置了动态内存,未设置value值,调用同步执行接口或异步执行接口时仍默认取创建函数设置的内存大小,调用成功返回“200”。
- 若配置了动态内存,内存值设置错误,未包含在128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096、8192、10240中,调用接口时,返回错误码“FSS.0406”,您只需重新设置value值即可调用成功。
图3 调用失败