首页 > 后端开发 > Golang > 如何在不公开发布的情况下在 Go Cloud 函数之间共享辅助包?

如何在不公开发布的情况下在 Go Cloud 函数之间共享辅助包?

DDD
发布: 2024-12-11 16:04:20
原创
335 人浏览过

How to Share Helper Packages Between Go Cloud Functions Without Public Publication?

Google Cloud Functions 中的子包

问题:

如何在 Go 中使用帮助程序包云功能,同时确保它们可以跨同一项目中的多个功能访问(无需发布它们公开)?

答案:

采用 Go 模块,Go 的高级依赖管理系统为使用子包提供了有效的解决方案。模块使您能够在 GOPATH 之外进行操作并精确管理依赖项的版本。

至关重要的是,模块允许使用一致的导入路径前缀定义 Go 包组。在您的云函数中,您可以利用此功能导入模块中的其他包。

请务必注意,您部署的函数应驻留在模块的根目录中。以以下文件结构为例:

.
├── cmd
│   └── main.go # For testing purposes, can import and configure your function.
├── function.go # Imports "example.com/foo/helperpackage"
├── function_test.go
├── go.mod # Module "example.com/foo"
└── helperpackage
    └── helper.go
登录后复制

在此设置中,您的函数驻留在 function.go 中并由 function_test.go 进行测试。这些组件属于模块“example.com/foo”,function.go可以导入“example.com/foo/helperpackage”。

此外,cmd目录方便本地测试。通过导入“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))
}
登录后复制

虽然使用供应商目录可以实现类似的结果,但需要将子包单独复制到供应商目录中(使用其完整导入路径),从而使维护麻烦。因此,这种方法并不常用于子包。

以上是如何在不公开发布的情况下在 Go Cloud 函数之间共享辅助包?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板