检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
代码解读 FunctionGraph函数初始化入口 Redis连接池 Redis重试机制 Redis健康检查 父主题: 示例代码
Context:runtime提供函数执行上下文,其接口定义在SDK接口说明。 创建Java函数时,函数入口参数需要提供函数完整的名字空间,参数格式为:包名.类名.函数名。 Java的initializer入口介绍 函数服务目前支持以下Java运行环境。 Java 8 (runtime = Java8)
创建函数 登录函数工作流控制台,在左侧导航栏选择“总览”,单击“创建函数”进入创建函数界面。 选择“创建空白函数”,在创建函数界面配置如下信息:函数类型选择“事件函数”、输入您自定义的函数名称,此处以“access-redis-demo”为例,选择运行时“Python3.9”,最后单击创建函数。
范围1~300秒。 heartbeat_handler 否 String 心跳函数函数的入口,规则:xx.xx,必须包含“. ”,只支持JAVA运行时配置。 心跳函数入口需要与函数执行入口在同一文件下。在开启心跳函数配置时,此参数必填。 enable_class_isolation
是否配置下沉apig路由规则。 heartbeat_handler String 心跳函数函数的入口,规则:xx.xx,必须包含“. ”,只支持JAVA运行时配置。 心跳函数入口需要与函数执行入口在同一文件下。在开启心跳函数配置时,此参数必填。 enable_class_isolation
"ok"; } } 普通java项目需要通过Artifacts来进行编译,需要定义一个main函数。 图5 定义函数运行入口 上图所示的代码中添加了多个入口函数,分别使用了不同的触发器事件类型。当函数的事件源是APIG时,相关约束条件请参考Base64解码和返回结构体的说明。 工程打包
的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。 对于Go runtime,必须在编译之后打zip包,编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin
String 虚拟私有云唯一标识。配置时,agencyName必填。虚拟私有云标识请登录虚拟私有云页面查看。 subnetId False String 子网编号。配置时,agencyName必填。子网编号请登录虚拟私有云子网页面查看。 dependVersionList False List<String>
样例代码目录如图1所示。 图1 样例代码目录 创建函数 创建函数的时候,必须选择委托包含OBS访问权限的委托,否则不能使用OBS服务。 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,进入函数列表界面。 单击“创建函数”,选择“创建空白函数”进入创建函数流程。 填写函数配置信息。
259200秒。 handler String 函数执行入口 规则:xx.xx,必须包含“. ” 举例:对于node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。长度不超过128个字符。 最小长度:3
initializerHandler 否 是 函数初始化入口,规则:xx.xx,必须包含“. ”。 举例:对于node.js函数:myfunction.initializer,则表示函数的文件名为myfunction.js,初始化的入口函数名为initializer。 concurrentNum
259200秒。 handler String 函数执行入口 规则:xx.xx,必须包含“. ” 举例:对于node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。长度不超过128个字符。 最小长度:3
259200秒。 handler String 函数执行入口 规则:xx.xx,必须包含“. ” 举例:对于node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。长度不超过128个字符。 最小长度:3
259200秒。 handler String 函数执行入口 规则:xx.xx,必须包含“. ” 举例:对于node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。长度不超过128个字符。 最小长度:3
剩余部分的请求将会转发给按量实例,由函数工作流自动为您分配执行环境。 预留实例在创建完成后,会自动加载该函数的代码、依赖包以及执行初始化入口函数,且预留实例会常驻环境,消除冷启动对业务的影响。 用户默认没有权限使用预留实例,如果需要使用预留实例功能,请在工单系统提交工单添加白名单。
是否配置下沉apig路由规则。 heartbeat_handler String 心跳函数函数的入口,规则:xx.xx,必须包含“. ”,只支持JAVA运行时配置。 心跳函数入口需要与函数执行入口在同一文件下。在开启心跳函数配置时,此参数必填。 enable_class_isolation
259200秒。 handler String 函数执行入口 规则:xx.xx,必须包含“. ” 举例:对于node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。长度不超过128个字符。 最小长度:3
${vars.functionName} # 函数名 handler: index.handler # 函数执行入口 memorySize: 256 # 函数消耗的内存 timeout: 30
${vars.functionName} # 函数名 handler: index.handler # 函数执行入口 memorySize: 256 # 函数消耗的内存 timeout: 30
RUNTIME_FUNC_VERSION 函数版本 Context类提供接口或通过系统环境变量获取 RUNTIME_HANDLER 函数执行入口 通过系统环境变量获取 RUNTIME_TIMEOUT 函数执行的超时时间 通过系统环境变量获取 RUNTIME_USERDATA 用户通过环境变量传入的值