概述
HTTP函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行,从而使用自己的Web服务。
说明
HTTP函数当前不区分编程语言,函数执行入口必须在bootstrap文件中设置,用户直接写启动命令,端口统一开放成8000,绑定IP为127.0.0.1。
bootstrap文件是HTTP函数的启动文件,HTTP函数仅支持读取bootstrap 作为启动文件名称,其它名称将无法正常启动服务。
HTTP函数支持多种开发语言。
用户函数需要返回一个合法的http响应报文。
该章节均以java 为样例,若需要使用其他语言,则更换语言路径即可,代码包路径无需更换。
前提条件
- 准备一个java的jar包。
- 准备一个bootstrap启动文件,作为HTTP函数的启动文件。
示例:
bootstrap文件内容如下
/opt/function/runtime/java8/rtsp/jre/bin/java -jar -Dfile.encoding=utf-8 /opt/function/code/gsondemo-0.0.1-SNAPSHOT.jar
/opt/function/runtime/java8/rtsp/jre/bin/java:表示java所在路径。
-Dfile.encoding=utf-8:JVM参数,添加此参数,可以避免中文乱码。
/opt/function/code:表示函数代码包所在路径
gsondemo-0.0.1-SNAPSHOT.jar:示例jar包,提供的服务路径为“/user/get”。
若需要使用其他语言,则参见下表更换语言路径,代码包路径无需更换。
多语言路径说明
语言 | 路径 |
---|---|
Java8 | /opt/function/runtime/java8/rtsp/jre/bin/java |
Java11 | /opt/function/runtime/java11/rtsp/jre/bin/java |
Node.js6 | /opt/function/runtime/nodejs6.10/rtsp/nodejs/bin/node |
Node.js8 | /opt/function/runtime/nodejs8.10/rtsp/nodejs/bin/node |
Node.js10 | /opt/function/runtime/nodejs10.16/rtsp/nodejs/bin/node |
Node.js12 | /opt/function/runtime/nodejs12.13/rtsp/nodejs/bin/node |
Node.js14 | /opt/function/runtime/nodejs14.18/rtsp/nodejs/bin/node |
Python2.7 | /opt/function/runtime/python2.7/rtsp/python/bin/python |
Python3.6 | /opt/function/runtime/python3.6/rtsp/python/bin/python3 |
Python3.9 | /opt/function/runtime/python3.9/rtsp/python/bin/python3 |
操作步骤
- 创建函数
- 创建HTTP函数,如下参数需注意。
- 函数类型:HTTP函数
- 区域:选择要部署代码的区域
- 上传代码,此处以“从OBS地址”上传为例,完成后单击“部署”。将提前准备好的jar包和bootstrap文件打包成zip包,代码上传方式选择“OBS地址”。
- 创建HTTP函数,如下参数需注意。
上传自OBS地址
2.创建触发器
说明HTTP函数只允许创建APIG的触发器类型,其他触发器不支持。
- 进入函数详情页面,选择“设置 > 触发器”页签,单击“创建触发器”。
- 配置触发器信息,此处以创建“API网关服务(APIG专享版)”触发器为例。
说明示例中“安全认证”暂时选择“None”,用户在配置时应根据实际情况选择。
App:采用 Appkey&Appsecret 认证,安全级别高,推荐使用。
IAM:IAM 认证,只允许IAM用户能访问,安全级别中等。
None:无认证模式,所有用户均可访问。
- 配置完成后,单击“确定”。API触发器创建完成后,会在API网关生成API“API_test_http”。
3.发布API
- 单击“触发器”页签下的API名称,跳转至API的总览页面。
- 单击右上方的“编辑”,进入“基本信息”页面。
编辑API
- 单击“下一步”,进入“定义api请求”页面,修改“请求Path”为“/user/get”并单击“立即完成”。
定义API请求
- 单击“发布API”,在发布页面继续单击“发布”。
4.触发函数
- 返回函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”,单击创建的HTTP函数进入函数详情页。
- 选择“设置 > 触发器”,复制“调用URL”,在浏览器访问。
复制URL
- 查看请求结果。
查看请求结果
函数公共请求头
HTTP函数请求头默认携带如下字段。
默认请求头
字段 | 描述 |
---|---|
X-CFF-Request-Id | 当前请求ID |
X-CFF-Memory | 分配的内存 |
X-CFF-Timeout | 函数超时时间 |
X-CFF-Func-Version | 函数版本 |
X-CFF-Func-Name | 函数名称 |
X-CFF-Project-Id | ProjectID |
X-CFF-Package | 函数组 |
X-CFF-Region | 当前region |