Google App Engine导入问题(golang)在" App Engine灵活环境" (以前称为"托管虚拟机")

时间:2016-10-05 12:39:37

标签: google-app-engine go google-cloud-storage

我正在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 /下的服务器上,所以他们并没有真正丢失,我猜错了。

我好几天都坚持这个问题,任何形式的帮助都会受到赞赏!

由于

1 个答案:

答案 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

如果您有任何疑问,请与我联系!