全部產品
Search
文件中心

Function Compute:編譯部署程式碼封裝

更新時間:Dec 17, 2024

Go是靜態編譯型語言,不支援在Function Compute控制台線上編輯代碼,您需要在本地自行編譯器並打包為.zip檔案。本文介紹如何將Function Compute官方Go SDK庫與您的代碼一同打包並上傳至Function Compute

前提條件

安裝Go語言環境。Function Compute已支援Go 1.x版本,推薦使用Go 1.8或以上版本。

在Linux或macOS下編譯打包

  1. 下載Function ComputeGo SDK庫。

    go get github.com/aliyun/fc-runtime-go-sdk/fc
  2. 準備代碼檔案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
  3. 打包上一步產生的二進位檔案。

    zip fc-golang-demo.zip main

在Windows下編譯打包

  1. 準備代碼檔案main.go,並在其所在目錄下執行如下命令編譯檔案。

    1. 同步選取Win+R鍵開啟運行視窗。

    2. 輸入cmd,按下Enter鍵,然後在命令提示字元視窗執行以下命令。

      set GOOS=linux
      set GOARCH=amd64
      go build -o main main.go
      說明
      • main.go僅為樣本,需替換為您實際的檔案名稱。

      • 編譯完成後,該目錄下產生與檔案同名的二進位檔案。

  2. 使用build-fc-zip工具打包上一步產生的二進位檔案。

    1. 使用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目錄下。

    2. 在代碼所在目錄下執行以下命令打包代碼。

      %USERPROFILE%\go\bin\build-fc-zip.exe -output main.zip main

建立函數並佈建要求處理常式

  1. 建立事件函數,選擇運行環境Go 1

  2. 上傳程式碼封裝並為函數配置請求處理常式。具體操作方式,請參見編輯函數

    image

    Go是編譯型語言,需要在本地編譯後以上傳ZIP包的形式上傳可執行檔二進位檔案。在Function Compute控制台請求處理常式配置中,Go語言的FC函數請求處理常式需要直接設定為[檔案名稱]。該檔案名稱是指編譯後的二進位檔案名稱,當函數被調用時,Function Compute平台會直接執行該二進位檔案。

    • 如果編譯產生的二進位檔案存放在ZIP包的根目錄,如下圖所示。此時,需要將FC函數請求處理常式設定為maingo-main

    • 如果編譯產生的二進位檔案沒有放到ZIP包的根目錄,而是放到例如bin/目錄下,如下圖所示。此時,請求處理常式需要設定為bin/maingp-bin-main