为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Google Cloud Functions with Go 中使用供应商的本地存储库

如何在 Google Cloud Functions with Go 中使用供应商的本地存储库

Go
慕神8447489 2022-06-06 15:55:59
我正在尝试部署一个用 Go 编写的 Google Cloud Function。通过做一些研究,我发现供应商文件比 go.mod 更受欢迎,所以我出售我使用的所有东西(包括一些本地依赖项)并忽略 .gcloudignore 文件中的 go.mod/sum 文件。问题是尝试部署后,我收到以下错误:go: nimbus@v0.0.0-00010101000000-000000000000: parsing /nimbus/go.mod: open /nimbus/go.mod: no such file or directory; Error ID: 03a1e2f7nimbus 是我的本地依赖,它具有以下结构:我的函数存储库具有以下结构:我的 go.mod 文件是:module my_functiongo 1.13require nimbus v0.0.0-00010101000000-000000000000replace nimbus => ../../../nimbus我已经尝试过这个解决方案https://stackoverflow.com/questions/5441096。但这并没有解决我的问题。我已经尝试了一切来解决这个问题,但似乎没有任何效果。
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

如果你有一个 go.mod 文件和一个 vendor 目录,那么当你部署你的函数时,vendor 目录将被忽略。

https://cloud.google.com/functions/docs/writing/specifying-dependencies-go

我在 Go 中部署 GCP 功能时使用了模块。没有遇到任何问题。但我不能说使用 vendor/ 的偏好。它应该可以工作,只是没有 go.mod 文件。


查看完整回答
反对 回复 2022-06-06
?
青春有我

TA贡献1784条经验 获得超8个赞

原来这个问题非常复杂,我希望谷歌能找到一个解决方案。

通过使用 Cloud Build 部署我的函数,它将从我在 Google Source 上的存储库中读取,但是,通过从那里读取,它将绕过 .gcloudignore 文件并使用我的本地代码部署 go.mod/sum 文件和供应商目录。

https://stackoverflow.com/a/62050872/10316247所述:

如果你有一个 go.mod 文件和一个 vendor 目录,那么当你部署你的函数时,vendor 目录将被忽略。

因此,由于我的 go.mod 无法找到本地存储库,因此会发生错误。

我的解决方案是重命名我的 go.mod/sum 文件,这样就不会考虑:

//img1.sycdn.imooc.com//629db3460001c78802850358.jpg

查看完整回答
反对 回复 2022-06-06
  • 2 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号