将 Go 子包部署到 Google Cloud Functions 失败

我正在尝试将函数部署到GCF,但无论我尝试什么,它都失败了。这是每次返回的错误:


Build failed: 2021/03/02 18:02:46 Unable to extract package name: unable to find Go package in /workspace/serverless_function_source_code.

exit status 1; Error ID: aba1aa6a

我在这里阅读了一些答案,我试图按照指示解决问题,但我一直有这个错误,我现在迷路了。


我的项目结构如下:


.

|--function.go

|--go.mod

|--go.sum

|--subpackage

`        |--subpackage.go

我的主要函数使用了来自 subpackage.go 的一些东西,function.go import 是:


package function


import (

    "fmt"

    "log"

    "net/http"


    // remote imports //

    

    modname/subpackage

)


,然后是 go.mod 文件:


module modname


go 1.13


require (

    // remote imports //


    modname/subpackage

)

子包被初始化为,我认为这是GCF文档所说的。package subpackage


在 function.go 中,我有一个名为 Start 的函数,我将其指定为设置中的入口点。我迷路了,我不知道如何解决这个问题。


阿波罗的战车
浏览 74回答 2
2回答

杨__羊羊

好的,找到了问题。如果你有我的问题,请忽略我的问题中的go.mod文件,因为在另一个答案上严格建议你不应该包含本地软件包。但我的问题不在于此。我正在压缩并上传包含项目的文件夹,而不是文件夹内的文件。GCF比解压缩.zip,并找到另一个文件夹,里面有这个项目。你的 go.mod 和 function.go 文件必须处于第一级。希望这将为其他人节省时间。

饮歌长啸

删除文件中的引用。当 文件位于波纹管下时,您无需在文件中引用它。subpackagego.modsubpackagefunction.gogo.mod
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go