为了账号安全,请及时绑定邮箱和手机立即绑定

使用 GCP 的 Datastore 时如何区分代码是在模拟器中运行还是在 GKE 中运行

使用 GCP 的 Datastore 时如何区分代码是在模拟器中运行还是在 GKE 中运行

C#
MYYA 2021-07-08 14:06:16
按照https://cloud.google.com/datastore/docs/tools/datastore-emulator 中给出的说明操作后,我不确定是否遗漏了任何内容除非我使用 DataStoreClient 显式创建 Datastore,否则我无法连接到本地模拟器。DatastoreDb db = DatastoreDb.Create(projectId, string.Empty, new DatastoreClientImpl(                new Datastore.DatastoreClient(                    new Channel("localhost", 8081, ChannelCredentials.Insecure)), new DatastoreSettings()));而不仅仅是 DatastoreDb.Create(projectId);如果我们在 GKE 中进行生产,我们需要连接到实际的 Datastore 而不是模拟器,我们如何区分具有相同代码库的两个版本。有没有办法检查代码是否正在运行 GKE,或者这是否应该通过环境变量来完成以获得最佳结果。
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

您可以使用命名空间中的PlatformGoogle.Api.Gax(在Google.Api.Gax包中):

Platform platform = Platform.Instance();

switch (platform.Type)

{

    case PlatformType.Gae:

        // Code for AppEngine

        break;

    case PlatformType.Gce:

        // Code for Compute Engine

        break;        

    case PlatformType.Gke:

        // Code for Google Kubernetes Engine

        break;

    default:

        // Code for other contexts

        break;

}


查看完整回答
反对 回复 2021-07-10
  • 1 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信