概述
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 |