我正在尝试从.NET Core应用发布到google PubSub。我已经在Google PubSub中创建了PubSub和主题。我下载了私钥json文件,并将其包含在我的项目中。我能够读取文件并创建凭据,但是我看不到将凭据传递给Google的PubSub Publisher客户端的方法。我查看了GitHub Post,但不幸的是,我没有看到名为DefaultEndPoint的属性。
运行我的代码会生成错误,该错误正在寻找凭证的环境变量。我现在不想设置环境变量,如果没有其他选择,我会尝试一下。
以下是我的代码,让我知道我做错了什么是最近发生的更改。
var credential = GoogleCredential.FromFile(“ app-services.json”); PublisherClient Publisher = PublisherClient.CreateAsync(topicName).Result;
答案 0 :(得分:1)
在此处签出“将路径传递给代码中的服务帐户密钥”(对于.NET): https://cloud.google.com/docs/authentication/production#obtaining_and_providing_service_account_credentials_manually
答案 1 :(得分:0)
同意这并不应该是显而易见的。
using Grpc.Auth;
var credential = GoogleCredential.FromFile("app-services.json");
var createSettings = new PublisherClient.ClientCreationSettings(
credentials: credential.ToChannelCredentials());
var publisher = await PublisherClient.CreateAsync(topicName,
clientCreationSettings: createSettings);
答案 2 :(得分:0)
创建没有环境变量的PublisherServiceApiClient:
var credential = GoogleCredential.FromJson(@"{""your_credentials_json_itself"":""here""}");
var channel = new Grpc.Core.Channel(PublisherServiceApiClient.DefaultEndpoint.ToString(), credential.ToChannelCredentials());
var publisher = PublisherServiceApiClient.Create(channel);