【发布时间】:2021-05-02 21:43:58
【问题描述】:
我为我们的服务设置了一个 GCP PubSub 处理器,它创建了一个 SubscriberClient 像这样
var subscriptionClient = await SubscriberClient.CreateAsync(subscriptionName);.
我设置了GOOGLE_APPLICATION_CREDENTIALS 环境变量并指向一个有效的SA 密钥。一切正常。
但是,我如何才能不使用/依赖本地计算机上的 GOOGLE_APPLICATION_CREDENTIALS 环境变量?
云存储客户端库允许您创建像 StorageClient.Create(GoogleCredentials gcpCredentials); 这样的存储客户端,我一直在使用 PubSub 客户端库寻找类似的东西,但没有找到任何东西。有ChannelCredentials,但似乎不是为了这个目的。
我确实看到SubscriberServiceApiClientBuilder 允许您指定JsonCredentials,但我没有将该客户端用于我的用例。鉴于文档中的以下内容,SubscriberClient 和 PublisherClient 更适合我的目的:
PublisherClient 和 SubscriberClient 为消息发布和订阅提供了更简单的 API。这些类提供了相当高的性能和简单性,尤其是在处理更高的消息吞吐量时。
谢谢
【问题讨论】:
-
我的一位同事将我指向 github.com/googleapis/google-cloud-dotnet/blob/master/apis/… 看起来我可以在我的代码中执行此操作并将结果用作 ClientCreationSettings 的 ChannelCredentials 到 SubscriberClient.CreateAsync() 调用。
标签: c# .net-core google-cloud-pubsub