Go是靜態編譯型語言,您需要在本地自行編譯器並打包為.zip檔案。本文介紹如何將Function Compute官方Go SDK庫與您的代碼一同打包。
前提條件
安裝Go語言環境。Function Compute已支援Go 1.x版本,推薦使用Go 1.8或以上版本。
在Linux或macOS下編譯打包
下載Function ComputeGo SDK庫。
go get github.com/aliyun/fc-runtime-go-sdk/fc
在檔案所在目錄下,執行如下命令編譯檔案。
GOOS=linux go build main.go
說明main.go
僅為樣本,需替換為您實際的檔案名稱。編譯完成後,該目錄下產生與檔案同名的二進位檔案。
設定
GOOS=linux
,確保編譯後的可執行檔與Function Compute平台的Go運行系統內容相容,尤其是在非Linux環境中編譯時間。補充說明如下:
針對Linux作業系統,建議使用純靜態編譯,配置
CGO_ENABLED=0
,確保可執行檔不依賴任何外部依賴庫(如libc庫),避免出現編譯環境和Go運行時環境依賴庫的相容問題。樣本如下:GOOS=linux CGO_ENABLED=0 go build main.go
針對M1 macOS(或其他ARM架構的機器),配置
GOARCH=amd64
,實現跨平台編譯,樣本如下:GOOS=linux GOARCH=amd64 go build main.go
打包上一步產生的二進位檔案。
zip fc-golang-demo.zip main
在Windows下編譯打包
編譯可執行檔。
同步選取Win+R鍵開啟運行視窗。
輸入cmd,然後按下Enter鍵。
在彈出的命令提示字元視窗中,執行以下命令。
set GOOS=linux set GOARCH=amd64 go build -o main main.go
使用build-fc-zip工具打包。
使用go get方式從GitHub下build-fc-zip工具。
go get -u github.com/aliyun/fc-runtime-go-sdk/cmd/build-fc-zip
使用build-fc-zip工具打包。如果您使用的go的預設安裝方式,則該工具通常會安裝在%USERPROFILE%\go\bin目錄下。
%USERPROFILE%\go\bin\build-fc-zip.exe -output main.zip main
配置FC函數處理常式
建立事件函數,選擇運行環境為Go 1。
Go是編譯型語言,需要在本地編譯後以上傳ZIP包的形式上傳可執行檔二進位檔案。在Function Compute控制台的請求處理常式配置中,Go語言的FC函數請求處理常式需要直接設定為
[檔案名稱]
。該檔案名稱是指編譯後的二進位檔案名稱,當函數被調用時,Function Compute平台會直接執行該二進位檔案。如果編譯產生的二進位檔案存放在ZIP包的根目錄,如下圖所示。此時,需要將FC函數請求處理常式設定為
main
。如果編譯產生的二進位檔案沒有放到ZIP包的根目錄,而是放到例如bin/目錄下,如下圖所示。此時,請求處理常式需要設定為
bin/main
。