使用node.js开发http函数-j9九游会登录
本章节以通过http函数部署koa框架为例,指导您使用node环境开始开发函数。
约束与限制
- http函数只能绑定apig/apic触发器,根据函数和apig/apic之间的转发协议。
函数的返回合法的http响应报文中必须包含body(string)、statuscode(int)、headers(map)和isbase64encoded(boolean),http函数会默认对返回结果做base64编码,isbase64encoded默认为true,其它框架同理。
- http函数默认开放端口为8000。
- 通过apig服务调用函数服务时,即使用apig触发器时,isbase64encoded的值默认为true,表示apig传递给functiongraph的请求体body已经进行base64编码,需要先对body内容base64解码后再处理。
函数必须按以下结构返回字符串。
{ "isbase64encoded": true|false, "statuscode": httpstatuscode, "headers": {"headername":"headervalue",...}, "body": "..." }
前提条件
已在本地操作系统中安装node环境。推荐使用euleros环境进行node.js的依赖包制作。
使用http函数部署koa框架示例
koa框架是一个基于node.js的web开发框架,主要用于构建高效、可扩展的web应用。
- 执行以下命令创建项目文件夹。
mkdir koa-example && cd koa-example
- 执行以下命令初始化nodejs项目和下载koa框架。
npm init -y npm i koa
执行成功后,文件夹中会新增node_modules文件夹和package.json、package-lock.json文件。
- 创建index.js文件,在index.js文件中引入koa框架,koa框架的更多使用方法可参考。
代码示例:
const koa = require("koa"); const app = new koa(); const main = (ctx) = >{ if (ctx.request.path == ("/koa")) { ctx.response.type = "application/json"; ctx.response.body = "hello world, user!"; ctx.response.status = 200; } else { ctx.response.type = "application/json"; ctx.response.body = 'hello world!'; ctx.response.status = 200; } }; app.use(main); app.listen(8000, '127.0.0.1'); console.log('node.js web server at port 8000 is running.') - 准备一个bootstrap启动文件,作为http函数的启动文件。文件内容如下:
/opt/function/runtime/nodejs20.15/rtsp/nodejs/bin/node $runtime_code_root/index.js
- /opt/function/runtime/nodejs20.15/rtsp/nodejs/bin/node:表示nodejs编译环境所在路径。
- $runtime_code_root:系统变量,表示容器中项目代码存放路径/opt/function/code。
- index.js:3创建的项目入口文件,可自定义名称。
目前支持的nodejs语言和对应的路径请参见表1。
表1 nodejs语言对应路径 语言
路径
node.js 6
/opt/function/runtime/nodejs6.10/rtsp/nodejs/bin/node
node.js 8
/opt/function/runtime/nodejs8.10/rtsp/nodejs/bin/node
node.js 10
/opt/function/runtime/nodejs10.16/rtsp/nodejs/bin/node
node.js 12
/opt/function/runtime/nodejs12.13/rtsp/nodejs/bin/node
node.js 14
/opt/function/runtime/nodejs14.18/rtsp/nodejs/bin/node
node.js 16
/opt/function/runtime/nodejs16.17/rtsp/nodejs/bin/node
node.js 18
/opt/function/runtime/nodejs18.15/rtsp/nodejs/bin/node
node.js 20
/opt/function/runtime/nodejs20.15/rtsp/nodejs/bin/node
- 把所有项目文件和bootstrap文件打包成zip文件。打包时需注意确保解压后,项目入口文件位于根目录。
图1 打包所有文件
- 登录,右上角单击“创建函数”
- 创建一个空白http函数,并将上述zip文件上传至“代码”页签。
创建成功后即可使用koa框架自行开发应用,框架提供了处理请求的基础设施,您自定义的应用代码则定义具体的业务逻辑。
相关文档
- 关于node.js函数开发的更多说明,请参见node.js函数开发概述。
- 使用node.js开发事件函数,请参见开发node.js事件函数。
- 制作node.js运行时的函数依赖包,请参见为node.js函数制作依赖包。
- 关于http函数的更多介绍,请参见创建http函数。
- 关于函数开发的更多说明,如函数支持的运行时、函数支持的触发事件、函数工程打包规范以及如何在函数中引入动态链接库,请参见函数开发概述。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨