java函数开发指南(使用idea工具创建java工程)-j9九游会登录
本章节介绍使用idea工具开发java函数。关于java函数接口定义、initializer入口介绍以及sdk接口说明请参考java函数开发概述。
操作流程
您可以跟随本文以下步骤从头开始创建java工程和java函数,也可以直接下载java的函数样例工程包并从步骤三:创建java函数并测试开始操作。
步骤一:使用idea创建java工程
- 配置idea
如图创建工程所示,创建java工程。图1 创建工程
- 添加工程依赖
根据提供的sdk地址,下载javaruntime sdk到本地开发环境解压,如图2所示。
图2 下载sdk解压
- 配置依赖
在工程目录下创建lib目录,将zip中的“runtime2.0.5.jar”和代码所需要的三方依赖包拷贝到该目录,并把该jar添加为工程依赖,如图3所示。
图3 配置依赖
- 配置函数资源
创建包com.huawei.demo,并在包下创建triggertests类,如图4所示。
图4 创建triggertests类
- 配置函数代码
如图5所示,在triggertests.java中定义函数运行入口,示例代码如下。(普通java项目需要通过artifacts来进行编译,因此需要定义一个main函数。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
packagecom.huawei.demo; importjava.io.unsupportedencodingexception; importjava.util.hashmap; importjava.util.map; importcom.huawei.services.runtime.context; importcom.huawei.services.runtime.entity.apig.apigtriggerevent; importcom.huawei.services.runtime.entity.apig.apigtriggerresponse; importcom.huawei.services.runtime.entity.dis.distriggerevent; importcom.huawei.services.runtime.entity.dms.dmstriggerevent; importcom.huawei.services.runtime.entity.lts.ltstriggerevent; importcom.huawei.services.runtime.entity.smn.smntriggerevent; importcom.huawei.services.runtime.entity.timer.timertriggerevent; importcom.huawei.services.runtime.entity.eventgrid.eventgridtriggerevent; publicclass triggertests{ publicstaticvoidmain(stringargs[]){} publicapigtriggerresponseapigtest(apigtriggereventevent,contextcontext){ system.out.println(event); map<string,string>headers=newhashmap<string,string>(); headers.put("content-type","application/json"); returnnewapigtriggerresponse(200,headers,event.tostring()); } publicstringsmntest(smntriggereventevent,contextcontext){ system.out.println(event); return"ok"; } publicstringdmstest(dmstriggereventevent,contextcontext){ system.out.println(event); return"ok"; } publicstringtimertest(timertriggereventevent,contextcontext){ system.out.println(event); return"ok"; } publicstringdistest(distriggereventevent,contextcontext)throwsunsupportedencodingexception{ system.out.println(event); system.out.println(event.getmessage().getrecords()[0].getrawdata()); return"ok"; } publicstringltstest(ltstriggereventevent,contextcontext)throwsunsupportedencodingexception{ system.out.println(event); event.getlts().getdata(); system.out.println("raw data: "event.getlts().getrawdata()); return"ok"; } publicstringeventgridtest(eventgridtriggereventevent,contextcontext){ system.out.println(event);return"ok"; } }
图5 定义函数运行入口
示例代码中添加了多个入口函数,分别使用了不同的触发器事件类型,可通过functiongraph控制台修改函数执行入口测试不同的入口函数。当函数的事件源是apig时,相关约束条件请参考base64解码和返回结构体的说明。
修改函数执行入口:
在functiongraph控制台左侧导航栏选择“函数 > 函数列表”,单击需要设置的“函数名称”进入函数详情页,选择“设置 > 常规设置”,配置“函数执行入口”参数,如图6所示。图6 函数执行入口
步骤二:打包java工程
步骤三:创建java函数并测试
- 登录,左侧导航栏选择,单击右上角“创建函数”进入创建函数页面,选择“创建空白函数”。
- 如图11所示,配置函数基本信息,“运行时”选择“java 17”,配置完成后单击右下角“创建函数”完成创建。
图11 创建java函数
- 进入函数详情页,在“代码”页签下,单击右侧,如图12所示,添加步骤二:打包java工程的jar文件上传。
图12 上传jar文件
- 上传成功后,选择“设置 > 常规设置”,修改需要测试的函数执行入口参数,单击。
- 回到“代码”页签,单击代码编辑区的“测试”,选择“创建新的测试事件”,在云事件模板列表中选择需要测试的事件模板,单击“创建”。
- 单击“测试”,查看函数执行结果。
函数执行结果分为三部分,分别为函数返回(由callback返回)、执行摘要、日志输出(由console.log或getlogger()方法获取的日志方法输出),参考表1查看结果说明。
表1 执行结果说明 参数项
执行成功
执行失败
函数返回
返回函数中定义的返回信息。
返回包含错误信息和堆栈异常报错信息的json文件。格式如下:
{ "errormessage": "", "stacktrace": [] }errormessage:runtime返回的错误信息
stacktrace:runtime返回的堆栈异常报错信息
执行摘要
显示请求id、配置内存、执行时长、实际使用内存和收费时长。
显示请求id、配置内存、执行时长、实际使用内存和收费时长。
日志
打印函数日志,最多显示4kb的日志。
打印报错信息,最多显示4kb的日志。
如需测试示例代码中的其他事件源触发器,例如smn事件源,可在函数的常规设置中,将函数执行入口修改为com.huawei.demo.triggertests.smntest,并参考以上步骤,创建新的消息通知服务smn测试事件进行函数测试。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨



