在 Google Cloud Functions 上建置 Go 子套件
部署 Go Cloud Functions 通常需要在多個函數之間共用輔助邏輯。為了優化這一點,可以利用子套件來組織同一專案中的共享程式碼。
解決方案:Go 模組和子包
Go 模組提供了一個依賴管理系統,可以使公共導入路徑前綴下的包的定義。這允許模組內的函數使用導入的路徑存取子包。
檔案結構:
以下是在雲端函數中引用子套件的範例檔案結構:
. ├── cmd │ └── main.go # Testing/debugging entry point ├── function.go # Imports and uses example.com/foo/helperpackage ├── function_test.go ├── go.mod # Module: example.com/foo └── helperpackage └── helper.go
導入子包:
在function.go中,可以使用以下方式匯入輔助套件:
import example.com/foo/helperpackage
測試:
cmd 目錄可用於本地測試。 main 函數可以匯入example.com/foo 並將函數註冊為HTTP 處理程序:
package main import ( "log" "net/http" "example.com/foo" ) func main() { http.Handle("/HelloHTTP", foo.HelloHTTP) log.Fatal(http.ListenAndServe(":8080", nil)) }
替代方法(不建議):
使用供應商目錄也可以用於子包共享,但是需要將所有導入的包及其完整導入路徑複製到該目錄中,這可能很麻煩並且灰心喪氣。
以上是如何在 Google Cloud Functions 中有效建構 Go 程式碼的子包?的詳細內容。更多資訊請關注PHP中文網其他相關文章!