使用Go構建FunctionGraph HTTP函數
更(geng)新時間 2025-01-13 16:37:18
最近更(geng)新時間(jian): 2025-01-13 16:37:18
分享文章(zhang)
本章節主(zhu)要指(zhi)導使用Go語(yu)言(yan)開發應用的用戶,將業務部署到FunctionGraph。由于HTTP函數本身不(bu)支持Go語(yu)言(yan)直接代碼部署,因此本章節將以轉換成(cheng)二進制(zhi)的方式為(wei)例,將Go編寫的程序(xu)部署到FunctionGraph上。
構建代碼包
創(chuang)建源文件(jian)main.go,代碼如(ru)下:
// main.go
package main
import (
"fmt"
"net/http"
"github.com/emicklei/go-restful"
)
func registerServer() {
fmt.Println("Running a Go Http server at localhost:8000/")
ws := new(restful.WebService)
ws.Path("/")
ws.Route(ws.GET("/hello").To(Hello))
c := restful.DefaultContainer
c.Add(ws)
fmt.Println(http.ListenAndServe(":8000", c))
}
func Hello(req *restful.Request, resp *restful.Response) {
resp.Write([]byte("nice to meet you"))
}
func main() {
registerServer()
}
# bootstrap
/opt/function/code/go-http-demo
在main.go中,使用8000端口啟(qi)動了一個HTTP服(fu)務器,并注冊了path為“/hello”的API,調用(yong)該API將返回"nice to meet you"。
編譯打包
-
在linux機器下,將上述代碼編譯 go build -o go-http-demo main.go 。然后,將go-http-demo和(he)bootstrap打包為xxx.zip。
-
在windows機器下使用(yong)Golang編(bian)譯器完成打包,具體步驟如下:
# 切換編譯環境方式 # 查看之前的golang編譯環境 go env # 設置成linux對應的 set GOARCH=amd64 go env -w GOARCH=amd64 set GOOS=linux go env -w GOOS=linux # go build -o [目標可執行程序] [源程序] # 例子 go build -o go-http-demo main.go # 還原之前的編譯環境 set GOARCH=amd64 go env -w GOARCH=amd64 set GOOS=windows go env -w GOOS=windows
創建HTTP函數并上傳代碼
創建1個HTTP函(han)數(shu),并上傳已打(da)包(bao)的xxx.zip包(bao)。詳情請參見 用(yong)戶指南的“創建HTTP函(han)數(shu)”章節。
創建APIG觸發器
詳(xiang)情請參見用戶指南的“使用APIG(專享版)觸發器”,“安全(quan)認證(zheng)”建議選擇“None”,方(fang)便調試。
調用測試
將剛才創(chuang)建的APIG觸發(fa)器(qi)的URL+代碼(ma)中注(zhu)冊的“/hello”復制到瀏(liu)覽器(qi)地址欄,可以看到請求結(jie)果。