使用 ASP.NET 核心应用程序连接到 google 数据存储模拟器

Connecting to google datastore emulator with ASP.NET Core application

我正在尝试在本地配置数据存储模拟器(windows 上的运行)以进行开发和测试,因为在云中更新索引需要花费大量时间。我将逐步完成 guide:

  1. gcloud beta 模拟器数据存储开始
  2. 应该配置环境变量:手动一行一行写就行了 set VARIABLE_NAME=VARIABLE_VALUE
  3. 正在尝试访问 localhost:8081 - returns 确定
  4. 正在尝试访问 localhost:8081/数据存储 - returns 未找到
  5. 在本地重新启动应用程序并尝试对数据存储进行一些操作:所有更改都应用在云端,而不是本地...

我遵循了相同的步骤,但除非我向 DataStore 的 Create 调用提供明确的说明,否则无法使其正常工作。

您需要区分您的代码是 运行 GCP 还是本地代码。

如果是本地环境,需要按如下方式创建DataStoreDB

DatastoreDb db = DatastoreDb.Create(projectId, string.Empty, new DatastoreClientImpl(
                new Datastore.DatastoreClient(
                    new Channel("localhost", 8081, ChannelCredentials.Insecure)), new DatastoreSettings()));

我仍在探索是否可以不专门初始化到 localhost

您可以使用 DatastoreDbBuilder 强制数据存储连接到模拟器:

private DatastoreDb _datastoreDb = new DatastoreDbBuilder
    {
        EmulatorDetection = EmulatorDetection.EmulatorOnly
    }.Build();