如何将Google凭证传递给Google pub sub

时间:2018-08-11 15:54:47

标签: google-app-engine google-cloud-platform google-cloud-pubsub

我正在尝试从.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;

3 个答案:

答案 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);