使用 ASP.NET 核心应用程序连接到 google 数据存储模拟器
Connecting to google datastore emulator with ASP.NET Core application
我正在尝试在本地配置数据存储模拟器(windows 上的运行)以进行开发和测试,因为在云中更新索引需要花费大量时间。我将逐步完成 guide:
- gcloud beta 模拟器数据存储开始
- 应该配置环境变量:手动一行一行写就行了 set VARIABLE_NAME=VARIABLE_VALUE
- 正在尝试访问 localhost:8081 - returns 确定
- 正在尝试访问 localhost:8081/数据存储 - returns 未找到
- 在本地重新启动应用程序并尝试对数据存储进行一些操作:所有更改都应用在云端,而不是本地...
我遵循了相同的步骤,但除非我向 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();
我正在尝试在本地配置数据存储模拟器(windows 上的运行)以进行开发和测试,因为在云中更新索引需要花费大量时间。我将逐步完成 guide:
- gcloud beta 模拟器数据存储开始
- 应该配置环境变量:手动一行一行写就行了 set VARIABLE_NAME=VARIABLE_VALUE
- 正在尝试访问 localhost:8081 - returns 确定
- 正在尝试访问 localhost:8081/数据存储 - returns 未找到
- 在本地重新启动应用程序并尝试对数据存储进行一些操作:所有更改都应用在云端,而不是本地...
我遵循了相同的步骤,但除非我向 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();