Go是靜態編譯型語言,不支援在Function Compute控制台線上編輯代碼,您需要在本地自行編譯器並打包為.zip檔案。本文介紹如何將Function Compute官方Go SDK庫與您的代碼一同打包並上傳至Function Compute。
前提條件
安裝Go語言環境。Function Compute已支援Go 1.x版本,推薦使用Go 1.8或以上版本。
在Linux或macOS下編譯打包
下載Function ComputeGo SDK庫。
go get github.com/aliyun/fc-runtime-go-sdk/fc
準備代碼檔案
main.go
,並在其所在目錄下執行如下命令編譯檔案。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下編譯打包
準備代碼檔案
main.go
,並在其所在目錄下執行如下命令編譯檔案。同步選取Win+R鍵開啟運行視窗。
輸入cmd,按下Enter鍵,然後在命令提示字元視窗執行以下命令。
set GOOS=linux set GOARCH=amd64 go build -o main main.go
說明main.go
僅為樣本,需替換為您實際的檔案名稱。編譯完成後,該目錄下產生與檔案同名的二進位檔案。
使用build-fc-zip工具打包上一步產生的二進位檔案。
使用go install方式下載build-fc-zip工具。
set GOOS=windows set GOARCH=amd64 go install github.com/aliyun/fc-runtime-go-sdk/cmd/build-fc-zip@latest
使用go install方式下載時,該工具通常會安裝在%USERPROFILE%\go\bin目錄下。
在代碼所在目錄下執行以下命令打包代碼。
%USERPROFILE%\go\bin\build-fc-zip.exe -output main.zip main
建立函數並佈建要求處理常式
建立事件函數,選擇運行環境為Go 1。
上傳程式碼封裝並為函數配置請求處理常式。具體操作方式,請參見編輯函數。
Go是編譯型語言,需要在本地編譯後以上傳ZIP包的形式上傳可執行檔二進位檔案。在Function Compute控制台的請求處理常式配置中,Go語言的FC函數請求處理常式需要直接設定為
[檔案名稱]
。該檔案名稱是指編譯後的二進位檔案名稱,當函數被調用時,Function Compute平台會直接執行該二進位檔案。如果編譯產生的二進位檔案存放在ZIP包的根目錄,如下圖所示。此時,需要將FC函數請求處理常式設定為
main
。如果編譯產生的二進位檔案沒有放到ZIP包的根目錄,而是放到例如bin/目錄下,如下圖所示。此時,請求處理常式需要設定為
bin/main
。