使用dev_appserver.py和www.example.com连接到谷歌云数据存储google.golang.org/appengine@v1.6.6

beq87vna  于 2022-12-16  发布在  Go
关注(0)|答案(1)|浏览(83)

正如标题所说,我们有一个遗留的Go 1.11 AppEngine API,它需要dev_appserver.py来运行。简单地说,我希望appengine.Main()appengine.NewContext(r)允许我的应用程序使用我的project-id指向我的云数据存储,而不是本地模拟器的存储。我设置了GOOGLE_APPLICATION_CREDENTIALS,但没有用。
这样我就可以在访问共享的云数据库时本地运行服务器。
我使用的是google.golang.org/appengine@v1.6.6dev_appserver.py --enable_console --port=8081 --support_datastore_emulator=true --go_debugging=true app.yaml
这是可能的吗?或者我在使用旧的Go语言库时被本地模拟器卡住了?

bwleehnv

bwleehnv1#

从评论到回答
1.看看Go语言1.11 https://cloud.google.com/appengine/docs/legacy/standard/go111/tools/remoteapiremote_api
1.使用它的逻辑是这样的-
如果在本地环境中运行,请使用remote_api,否则请坚持默认行为(即,由于remote_api未启用,它将在本地环境中使用模拟器或直接在生产中使用生产数据)
为了简单起见,您可以尝试使用相同的变量名,即

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

然后,在对datastore的其余查询/调用中使用“ctx

**注意:**我不熟悉“Go”,因此将上述代码视为伪代码,而不是工作代码

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

相关问题