如何解决使用内部私有函数的 Google Cloud Function
项目看起来像这样
project
- internal
- package
code.go
- cmd
- function
main.go
在 cmd/function 中,go.mod 如下所示:
module github.com/private/repo/cmd/function
go 1.13
require (
github.com/private/repo/internal/package v0.0.0-00010101000000-000000000000
)
replace github.com/private/repo/internal/package => ../../internal/package
在本地运行良好,但是,当部署为 Cloud Function 时,它不起作用,因为 Cloud Function 仅包含“cmd/function”目录。
相反,我尝试将模块复制到项目目录中并进行替换。
project
- cmd
- function
main.go
- internal
- package
code.go
replace github.com/private/repo/internal/package => ./internal/package
但是这个替换似乎被忽略了,因为 Cloud Function 部署构建仍然尝试下载这个包。
接下来,我尝试使用 go mod vendor,并忽略 go.mod 和 go.sum 文件。这似乎可以解决问题,但并不完全,因为删除了 go.mod,我不能再使用内部包了。
use of internal package function/vendor/github.com/private/repo/internal/package not allowed
不确定我将如何解决这个问题并且仍然能够使用内部包名称。
编辑: 添加了一个存储库,通过不在库名称中使用 internal 关键字来显示错误和简单修复。 https://github.com/lobbin/gcloud-function-error
解决方法
感谢您报告此问题。
我为此改进提交了功能请求 [1]。
我建议您为 FR 加星标,以提高其知名度,每次有更新时,您都会收到电子邮件通知。
请注意,目前此请求没有 ETA。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。