在 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中文网其他相关文章!