使用JSON凭证文件连接Google PubSub并实现消息发布时遇权限拒绝问题求助
使用JSON凭证文件连接Google PubSub并实现消息发布时遇权限拒绝问题求助
大家好,我最近在做一个功能,需要用从Secret Manager拿到的JSON凭证文件,实现向Google PubSub发布消息的功能,但是调用PublishAsync的时候一直抛出Permission denied错误,折腾了好一阵没搞定,想请各位帮忙看看问题出在哪。
我的代码如下:
public async Task PublisMessage(ApiRequestHeaders MetaData, PubSubRequest pubSubModel) { string jsonPath = Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS"); GoogleCredential googleCredential = null; using (var jsonStream = new FileStream(jsonPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { googleCredential = GoogleCredential.FromStream(jsonStream); } var createSettings = new PublisherClient.ClientCreationSettings(credentials: googleCredential.ToChannelCredentials()); TopicName topicName = new TopicName(pubSubModel.ProjectId, pubSubModel.TopicName); try { PublisherClient _publisher = await PublisherClient.CreateAsync(topicName, clientCreationSettings: createSettings); var _message = await GetPublisMessage(pubSubModel.DocumentId, MetaData); var acknowledgmentNumber = await _publisher.PublishAsync(_message); //Permission denied error return true; } catch (Exception ex) { _logger.Error("PushMessageToPubsub Error : " + ex); return false; } }
目前我已经确认环境变量是正确配置的,文件也能正常读取,但就是卡在发布这一步报权限拒绝。有没有大佬能给点排查方向或者解决方案?
备注:内容来源于stack exchange,提问作者user3411731
相关产品推荐
相关产品推荐

