更新时间:2025-04-24 GMT+08:00

开发HTTP函数

本章节通过HTTP函数部署koa框架,更多HTTP详情,请参见创建HTTP函数

约束与限制

  • HTTP函数只能绑定APIG/APIC触发器,根据函数和APIG/APIC之间的转发协议。

    函数的返回合法的http响应报文中必须包含body(String)、statusCode(int)、headers(Map)和isBase64Encoded(boolean),HTTP函数会默认对返回结果做Base64编码,isBase64Encoded默认为true,其它框架同理。相关约束条件请参考Base64解码和返回结构体的说明

  • HTTP函数默认开放端口为8000。
  • Context类中提供了许多上下文方法供用户使用,其声明和功能请参见表1

前提条件

  1. 准备一个bootstrap启动文件,作为HTTP函数的启动文件。举例如下:
    /opt/function/runtime/nodejs14.18/rtsp/nodejs/bin/node $RUNTIME_CODE_ROOT/index.js
    • /opt/function/runtime/nodejs14.18/rtsp/nodejs/bin/node:表示nodejs编译环境所在路径。
    • $RUNTIME_CODE_ROOT:系统变量,表示容器中项目代码存放路径/opt/function/code。
    • index.js:项目入口文件,可自定义名称。

    目前支持的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

  2. 在Linux机器上安装node环境并准备nodejs项目文件。

创建Koa Web应用示例

  1. 创建项目文件夹。
    mkdir koa-example && cd koa-example
  2. 初始化nodejs项目,下载koa框架,文件夹中会新增node_modules文件夹和package.json、package-lock.json文件。
    npm init -y
    npm i koa
  3. 创建index.js文件,在index.js文件中引入koa框架,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..')
  4. 创建bootstrap文件。

  5. 把项目文件和bootstrap文件打包成zip包。以koa框架为例: