如何使用Go的Google云功能中供应商的本地存储库

如何使用Go的Google云功能中供应商的本地存储库,go,google-cloud-functions,go-modules,Go,Google Cloud Functions,Go Modules,我正在尝试部署一个用Go编写的googlecloud函数 通过做一些研究,我发现供应商文件比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 directo

我正在尝试部署一个用Go编写的googlecloud函数

通过做一些研究,我发现供应商文件比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: 03a1e2f7
nimbus是我的本地依赖项,它具有以下结构:

我的功能存储库具有以下结构:

我的go.mod文件是:

module my_function

go 1.13

require nimbus v0.0.0-00010101000000-000000000000

replace nimbus => ../../../nimbus
我已经试过这个方法了。但它并没有解决我的问题

我已经尽了一切努力来解决这个问题,但似乎没有任何效果

如果您有go.mod文件和供应商目录,则在部署功能时将忽略供应商目录

我在Go中部署GCP功能时使用了模块。没有任何问题。但我不赞成使用vendor/来代替。它应该可以工作,只是没有go.mod文件

如果您有go.mod文件和供应商目录,则在部署功能时将忽略供应商目录


我在Go中部署GCP功能时使用了模块。没有任何问题。但我不赞成使用vendor/来代替。如果没有go.mod文件,它应该可以工作。

结果是问题非常复杂,我希望谷歌能找到解决办法

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

如中所述:

如果您有go.mod文件和供应商目录,则在部署功能时将忽略供应商目录

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

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


事实证明,问题非常复杂,我希望谷歌能找到解决办法

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

如中所述:

如果您有go.mod文件和供应商目录,则在部署功能时将忽略供应商目录

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

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


冷启动是主要原因。加载依赖项,而不是将它们放在本地,会使冷启动时间更长(在某些情况下,取决于依赖项,时间更长),如问题中所述以及项目结构图中所示,.gcloudignore文件应忽略go.mod和go.sum文件,因为这样做仅考虑供应商文件冷启动是主要原因。加载依赖项,而不是将它们放在本地,会使冷启动时间更长(在某些情况下,取决于依赖项,时间更长),如问题中所述以及项目结构图所示,.gcloudignore文件应忽略go.mod和go.sum文件,因为这样做仅考虑供应商文件。您的nimbus依赖项是否特定于云功能的项目?您的nimbus依赖项是否特定于云功能的项目?