登录
首页 >  Golang >  Go问答

使用 dev_appserver.py 和 google.golang.org/ 连接到 Google Cloud Datastore

来源:stackoverflow

时间:2024-04-02 21:54:31 292浏览 收藏

大家好,我们又见面了啊~本文《使用 dev_appserver.py 和 google.golang.org/ 连接到 Google Cloud Datastore》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

正如标题所说。我们有一个旧版 Go 1.11 AppEngine API,需要 dev_appserver.py 才能运行。简而言之,我希望 appengine.Main()appengine.NewContext(r) 允许我的应用程序使用我的 project-id 指向我的云数据存储,而不是本地模拟器的存储。我设置了 GOOGLE_APPLICATION_CREDENTIALS 没有效果。

这样我就可以在本地运行服务器,同时访问共享的云数据库。

我正在使用 google.golang.org/[email protected]dev_appserver.py --enable_console --port=8081 --support_datastore_emulator=true --go_debugging=true app.yaml

这可能吗?或者在使用旧的 Go 库时我是否停留在本地模拟器上?


正确答案


从评论转向回答

  1. 查看 go 1.11 的 remote_api https://cloud.google.com/appengine/docs/legacy/standard/go111/tools/remoteapi

  2. 使用它的逻辑类似于 -

    如果在本地环境中运行,请使用 remote_api 否则坚持默认行为(即由于 remote_api 未启用,它将在本地环境中使用模拟器或直接在生产中使用生产数据)

    为了简单起见,您可以尝试使用相同的变量名称,即

    if this is local environment
     ctx, err := remote_api.NewRemoteContext(host, hc)
    else
     ctx := appengine.NewContext(r)

    然后,您在对数据存储区的其余查询/调用中使用“ctx”

    注意:我不熟悉“go”,因此将以上内容视为伪代码而不是工作代码

  3. 您可能还想考虑不使用 --support_datastore_emulator=true 标志运行上述更改

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>