使用ASP.NET Core应用程序连接到Google数据存储区模拟器

时间:2017-12-16 21:09:30

标签: google-app-engine asp.net-core google-cloud-datastore google-cloud-platform app-engine-flexible

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

  1. gcloud beta模拟器数据存储启动
  2. 应配置环境变量:只需逐行手动编写设置VARIABLE_NAME = VARIABLE_VALUE
  3. 尝试访问localhost:8081 - 返回确定
  4. 尝试访问localhost:8081 / datastore - 返回未找到
  5. 在本地重新启动应用程序并在数据存储上尝试某些操作:所有更改都应用于云,而不是本地......

2 个答案:

答案 0 :(得分:2)

我遵循了相同的步骤,但除非我向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

,我仍在探索

答案 1 :(得分:0)

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

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