我正在golang上直接在" App Engine灵活环境中开发API#34; (以前称为"管理虚拟机")。
到目前为止,我一直在我的.go文件中使用这种导入:
import (
"appengine"
"appengine/datastore"
...)
最近我决定使用Google云端存储来存储图片。它需要导入" cloud.google.com/go/storage"。我的问题是我无法使用此导入(未找到)或任何其他简短版本(" go / storage")部署应用程序,就像我用于appengine导入一样。
经过大量研究后,我发现了这一点:https://github.com/golang/appengine#user-content-3-update-code-using-deprecated-removed-or-modified-apis
它指定了如何使用短导入(不赞成使用我的)导入应用程序到完全导入(存储库显式为" google.golang.org/appengine")
我按照程序使用他们提供的脚本来更新我的代码(aefix)。他们还说要将此行添加到我的app.yaml文件中:
vm : true
如果我这样做,我收到此错误消息' gcloud app deploy' :
ERROR: (gcloud.app.deploy) Your application does not satisfy all of the requirements for a runtime of type [go]. Please correct the errors and try again.
如果我没有,我的导入都没有工作,我收到以下错误:
can't find import: "google.golang.org/appengine/datastore"
这是我的app.yaml文件:
runtime: go
api_version: go2
#vm : true
handlers:
- url: /.*
script: _go_app
当然,所有导入都在$ GOPATH / src /下的服务器上,所以他们并没有真正丢失,我猜错了。
我好几天都坚持这个问题,任何形式的帮助都会受到赞赏!
由于
答案 0 :(得分:0)
很抱歉 - 我们有一些文档需要更新。您不能将golang / appengine包与App Engine灵活环境一起使用。 aefix工具也不适用于此。您需要在此处使用Go客户端库,而不是App Engine Go SDK:
https://github.com/GoogleCloudPlatform/google-cloud-go
如果您之前使用的是vm:true
,则需要升级到env:flex
- 说明(以及go app引擎库上的注释)在此处:
https://cloud.google.com/appengine/docs/flexible/go/upgrading
如果您有任何疑问,请与我联系!