函数工作流 FUNCTIONGRAPH-函数初始化入口Initializer:initializer接口规范

时间:2025-02-18 14:55:38

initializer接口规范

各个runtime的initializer接口有以下共性:

  • 无自定义参数

    Initializer不支持用户自定义参数,只能获取FunctionGraph提供的context参数中的变量进行相关逻辑处理。

  • 无返回值

    开发者无法从invoke的响应中获取initializer预期的返回值。

  • 超时时间

    开发者可单独设置initializer的超时时间,与handler的超时相互独立,但最长不超过 300 秒。

  • 执行时间

    运行函数逻辑的进程称之为函数实例,运行在容器内。FunctionGraph会根据用户负载伸缩函数实例。每当有新函数实例创建时,系统会首先调用initializer。系统保证一定initializer执行成功后才会执行handler逻辑。

  • 最多成功执行一次

    FunctionGraph保证每个函数实例启动后只会成功执行一次initializer 。如果执行失败,那么该函数实例执行失败,选取下一个实例重新执行,最多重试3次。一旦执行成功,在该实例的生命周期内不会再执行initializer,收到Invoke请求之后只执行请求处理函数。

  • initializer入口命名

    除Java外,其他runtime的initializer入口命名规范与原有的执行函数命名保持一致,格式为 [文件名].[ initializer名],其中initializer名可自定义。Java需要定义一个类并实现函数计算预定义的初始化接口。

  • 计量计费

    Initializer的执行时间也会被计量,用户需要为此付费,计费方式同执行函数。

support.huaweicloud.com/devg-functiongraph/functiongraph_02_0532.html