0

我昨天安装了一个扳手模拟器,它成功地返回了我的查询结果,比如gcloud spanner databases list --instance=test-instance

但是由于我重新启动了我的机器,当我尝试执行数据库列表或任何其他查询时,我看到了这个特定的错误。它在每种情况下都返回以下错误-

gcloud spanner databases list --instance=test-instance
ERROR: (gcloud.spanner.databases.list) HttpError accessing <http://localhost:9020/v1/projects/test-project/instances/test-instance/databases?alt=json&pageSize=100>: response: <{'date': 'Fri, 05 Feb 2021 09:18:12 GMT', u'status': 500, 'content-length': '44', 'content-type': 'application/json'}>, content <{"error": "failed to marshal error message"}>
This may be due to network connectivity issues. Please check your network settings, and the status of the service you are trying to reach.

谁能告诉我同样的原因可能是什么?

注意- 我尝试使用 CLI 和 Docker 启动模拟器,但都没有工作。我从这两种方法中都得到了以下输出,这让我相信模拟器正在正确启动。

gcloud beta emulators spanner start
Executing: docker run -p 127.0.0.1:9010:9010 -p 127.0.0.1:9020:9020 gcr.io/cloud-spanner-emulator/emulator:1.1.1
[cloud-spanner-emulator] 2021/02/05 09:10:41 gateway.go:140: Cloud Spanner emulator running.
[cloud-spanner-emulator] 2021/02/05 09:10:41 gateway.go:141: REST server listening at 0.0.0.0:9020
[cloud-spanner-emulator] 2021/02/05 09:10:41 gateway.go:142: gRPC server listening at 0.0.0.0:9010

更新


根据下面@Hoilong 的回答。重新创建扳手实例工作正常。以下是为重新创建实例而运行的命令 -

gcloud spanner instances delete <name_of_instance>

进而

gcloud spanner instances create <name_of_instance> --config=emulator-config --description="Test Instance" --nodes=1

注意-

  1. <name_of_instance> - 将此替换为您为现有实例提供的实例名称。
  2. 在运行这些命令之前必须运行模拟器。您可以参考此文档以找到启动模拟器的不同方法 - https://cloud.google.com/spanner/docs/emulator
4

1 回答 1

2

模拟器不像本地实例。根据公开文件:

由于模拟器仅将数据存储在内存中,因此它不会在运行期间保留数据。

这里发生的情况是,重启后,所有数据(不仅仅是存储在数据库中的数据,还包括实例/数据库)都消失了。您只需要重新创建实例/数据库。

于 2021-02-05T17:21:35.170 回答