我正在尝试部署Google Cloud Function in Go,但是在部署过程中出现错误,因为我同时使用了子包和“内部模块”(仅在主机上定义,不在任何地方部署)。我有以下结构:
.
├── function
│ ├── package1
│ │ └── file1.go
│ ├── function.go
│ ├── go.mod
│ └── go.sum
└── common
├── common.go
├── go.mod
└── go.sum
我的function.go
(我的Cloud函数的入口)的内容:
package function
import (
"github.com/.../function/package1"
"github.com/.../common"
)
// use functions from package1 and common
主题已在此处单独介绍:
第一篇文章指出要使用供应商,并从源中排除go.mod
和go.sum
才能使用common
模块,而第二篇文章则要包括go.mod
和go.sum
,而无需进行销售即可使用子包。
但是我想知道:是否可以同时使用两者?还是供应商依赖性需要将所有.go
源文件放在同一目录中(没有子包)?同样,使用子包要求不使用供应商吗?如何构造代码以避免这些限制,或者该怎么做(在某个地方部署common
模块,...)?
此外,documentation on "Specifying dependencies" for Go Cloud Functions指出:
Go中的Cloud Functions必须通过 具有go.mod文件的Go模块或供应商目录提供其所有依赖项。您的函数无法同时使用Go模块和供应商目录同时指定依赖项。