更新时间:2025-01-23 GMT+08:00
分享

配置函数初始化

函数初始化是指调用函数时对其进行初始化设置的过程,包括设置函数的初始状态、分配资源或为函数内部的变量赋予初始值等。

FunctionGraph是在函数实例启动成功后执行函数的初始化,初始化执行成功后,函数实例才能开始处理函数的调用请求。

FunctionGraph保证一个函数实例在生命周期内只成功执行一次函数初始化。函数初始化的执行时间也会被计量,用户需要为此付费,计费方式与函数的调用处理一致。

一般场景下,多个请求处理可以共享的业务逻辑适合放到初始化函数,以降低函数时延,例如深度学习场景下加载规格较大的模型、数据库场景下连接池构建。

约束与限制

  • 函数初始化入口需要和函数执行入口在同一文件下。
  • 开启函数初始化功能后,各运行时的函数初始化入口命名规范与原有函数执行入口保持一致。如Node.js和Python函数的执行入口命名规则为:[文件名].[初始化函数名]。

配置函数初始化

  1. 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  2. 单击函数的名称,进入函数详情页。
  3. 在“设置”页签下选择“生命周期”。
  4. 在设置页面开启“初始化配置”,启用函数的初始化,并配置初始化参数。

    HTTP函数的“初始化配置”开关默认开启,且不可关闭。

    图1 开启初始化配置
    表1 初始化配置参数说明

    参数

    说明

    初始化超时时间(秒)

    函数初始化的超时时间,可设置范围为1-300秒。

    函数初始化入口

    仅事件函数可配置此参数。

    各运行时的函数初始化入口命名规范与原有函数执行入口保持一致。如Node.js和Python函数的执行入口命名规则为:[文件名].[初始化函数名]。

    说明:

    函数代码配置信息请参见配置函数代码

初始化函数代码示例

  • Node.js(initializer入口介绍
    exports.initializer = function(context, callback) {
        callback(null, '');
        };
  • Python(initializer入口介绍
    def my_initializer(context):
        print("hello world!")
  • Java(initializer入口介绍
    public void my_initializer(Context context)
    {
    RuntimeLogger log = context.getLogger();
    log.log(String.format("ak:%s", context.getAccessKey()));
    }
  • PHP(initializer入口介绍
    <?php
    Function my_initializer($context) {
        echo 'hello world' . PHP_EOL;
        }
    ?>

相关文档