同时使用Go模块和供应商部署Google Cloud Function

时间:2019-04-02 14:54:09

标签: go google-cloud-functions go-modules vendoring

我正在尝试部署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.modgo.sum才能使用common模块,而第二篇文章则要包括go.modgo.sum,而无需进行销售即可使用子包。

但是我想知道:是否可以同时使用两者?还是供应商依赖性需要将所有.go源文件放在同一目录中(没有子包)?同样,使用子包要求不使用供应商吗?如何构造代码以避免这些限制,或者该怎么做(在某个地方部署common模块,...)?

此外,documentation on "Specifying dependencies" for Go Cloud Functions指出:

  

Go中的Cloud Functions必须通过 具有go.mod文件的Go模块或供应商目录提供其所有依赖项。您的函数无法同时使用Go模块和供应商目录同时指定依赖项。

0 个答案:

没有答案