gpt4 book ai didi

google-app-engine - google.golang.org/appengine/datastore 与 cloud.google.com/go/datastore

转载 作者:IT王子 更新时间:2023-10-29 01:38:09 25 4
gpt4 key购买 nike

我构建了一个小型 go 应用程序,用于 AppEngine。我通过 go run .. 在本地运行 go,我正在尝试使用数据存储。

我通过 gcloud beta emulators datastore start 在本地运行数据存储模拟器,并通过导出 DATASTORE_EMULATOR_HOST,go 应用程序可以在本地连接到它。

所以我使用 cloud.google.com/go/datastore 构建了我的应用程序,但是当我将它部署到 AppEngine 时,任何连接到数据存储区的代码似乎都会使整个应用程序失败并出现超时。

在尝试对此进行调试时,我遇到了使用 google.golang.org/appengine/datastore 并编写一些测试代码的代码,我得到了一些可以在 AppEngine 上运行的东西。

但是这个数据存储似乎无法连接到数据存储模拟器。

  1. 有人在使用 cloud.google.com/go/datastore 时遇到超时问题吗?我似乎读到不同的答案,人们说出于某种原因使用 this 包而不是 golang.org 包。
  2. 我可以在 AppEngine 上使用 cloud.google.com/go/datastore 吗?我更愿意使用这个包,因为它适用于数据存储模拟器。

简而言之,我正在使用以下代码:

import "cloud.google.com/go/datastore"
...
ctx := appengine.NewContext(r)
...
client, err := datastore.NewClient(dsCtx, projectID)
...
key := datastore.IDKey(TestKind, testID, nil)
err = client.Get(ctx, key, &data)

这是在 AppEngine 上超时的代码,但在本地运行良好。

同样适用于 AppEngine 的代码是这样的:

import "google.golang.org/appengine/datastore"
...
ctx := appengine.NewContext(r)
key := datastore.NewKey(ctx, TestKind, "", testID, nil)
err := datastore.Get(ctx, key, &data)

这将在本地失败并显示以下内容:

Metadata fetch failed: Get http://metadata/computeMetadata/v1/instance/attributes/gae_project: dial tcp: lookup metadata: no such host

如有任何帮助,我们将不胜感激。

最佳答案

来自Connecting to Cloud Datastore with App Engine section in the App Engine Cloud Datastore Overview :

You cannot use the Cloud Datastore client library with Go applications in the App Engine standard environment.

基本上,cloud.google.com/go/datastore 用于在 App Engine 标准环境之外使用 Cloud Datastore。这包括非 App Engine 环境以及 App Engine 柔性环境。

google.golang.org/appengine/datastore 用于在 App Engine 标准环境中使用它。

对于 App Engine 标准环境的本地测试,请考虑使用 dev_appserver.py它通过 --support_datastore_emulator 标志提供与 Cloud Datastore 模拟器的集成。

关于google-app-engine - google.golang.org/appengine/datastore 与 cloud.google.com/go/datastore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com