Golang Cloud Function 部署失败,第一个路径元素中缺少点

Golang Cloud Function failed deployment missing dot in first path element

我尝试使用模块 = mymodule 部署 Golang 项目,但失败并出现以下错误

Deployment failure:
Build failed: {"error":{"buildpackId":"google.go.functions-framework","buildpackVersion":"0.9.0","errorType":13,"canonicalCode":13,"errorId":"131fbb9d"
,"errorMessage":"go mod: -require=mymodule@v0.0.0: invalid path: malformed module path \"mymodule\":
missing dot in first path element"},"stats":null}

如果我将 mymodule 重命名为在其中包含点,例如mymodule.test ,然后它在我的本地失败,因为它试图从不存在的 https://mymodule.test 外部获取它

提前致谢

Go 模块名称将被解释为给定项目可用的 URL。您必须根据项目的 URL 来命名模块。例如。 github.com/iwan/yourproject,假设您的项目在 github.com/iwan/yourproject.

原因

当您发布 go 模块并将其构建到 gcloud 中时,您的模块将被导入(请参阅错误消息:go mod: -require=mymodule@v0.0.0)。标准的 go 模块导入过程将通过获取 https://<your_module_name>@v.0.0.0.

的内容来验证可用模块的校验和

这就是为什么您会抱怨缺少“.”,因为它会尝试确保您提供了有效的 URL。这就是为什么当你将它命名为 mymodule.test 时它会失败,因为 URL,go 模块指示(即 https://mymodule.test)不可用。

您可以在 go.mod 文件中定义一个本地模块,像这样

require mymodule.test v0.0.0

replace mymodule.test v0.0.0=> ./path/to/mymodule