Google Cloud PubSub - 似乎无法获取主题

Posted

技术标签:

【中文标题】Google Cloud PubSub - 似乎无法获取主题【英文标题】:Google Cloud PubSub - can't seem to get topics 【发布时间】:2015-10-15 12:37:54 【问题描述】:

我正在使用 heroku 运行一个 node.js 应用程序,该应用程序使用 gcloud 创建一个主题,然后订阅它。我正在使用以下代码,取自这里:https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.16.0/pubsub

var gcloud = require('gcloud')(
  keyFilename: 'pubsub_key.json',
  projectId: 'pipedrivesekoul'
);

var pubsub = gcloud.pubsub();

//create a new topic
pubsub.createTopic('projects/pipedrivesekoul/my-new-topic', function(err, topic, apiResponse) 
  var topic = pubsub.topic('my-new-topic');
  topic.publish(
    data: 'New message!'
  , function(err) console.log);
);

  var topic = pubsub.topic('my-new-topic');



// Without specifying any options.
topic.subscribe('newMessages', function(err, subscription, apiResponse) );

var alltopics = pubsub.getTopics(, function(err, topics, nextQuery, apiResponse) );

console.log(pubsub.getTopics(, function(err, topics, nextQuery, apiResponse) ));

但是,当我在 Heroku 上部署(https 服务器,在 Google 控制台上注册,部署了正确的 API 和 json 文件中的适当密钥)时,它没有看到主题列表,而是返回“未定义”:

2015-07-24T18:06:05.321079+00:00 应用[web.1]:未定义

2015-07-24T18:06:05.337947+00:00 app[web.1]:节点应用程序正在端口 36252 上运行

不确定为什么会发生这种情况,也不确定如何调试此问题。任何建议将不胜感激!

【问题讨论】:

【参考方案1】:

我发现了几个问题,希望能解决这个问题。

pubsub.createTopic('projects/pipedrivesekoul/my-new-topic'

您只需要提供my-new-topic 部分。丑陋的长标题会自动发送。

console.log(pubsub.getTopics(, function(err, topics, nextQuery, apiResponse) ));

这实际上是记录调用的结果

pubsub.getTopics(, function(err, topics, nextQuery, apiResponse) )

这是undefined。相反,请尝试:

pubsub.getTopics(, function(err, topics, nextQuery, apiResponse) 
  if (err) 
    console.error(err);
    return;
  

  console.log(topics); // hopefully in this array is one called `my-new-topic`
);

【讨论】:

太好了,非常感谢 - 我现在可以获得主题列表。我正在尝试使用 SetIamPolicy 授予主题的发布权限,正如我在这里描述的那样:[***.com/questions/31599021/… 但还没有成功 - 不确定确切的调用应该是什么样子。现在我已经制作了一个 json 文件,如下所述:[developers.google.com/gmail/api/guides/push] 并像这样称呼它:topics.SetIamPolicy('pubsub_policy.json'); - 但主题是未定义的。有任何想法吗?就 node.js 中的示例而言,谷歌搜索完全没有产生任何结果......

以上是关于Google Cloud PubSub - 似乎无法获取主题的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud PubSub:如何仅读取最新记录

google.cloud.pubsub_v1 和 google.cloud.pubsub 有啥区别?

如何使用 Google PubSub 确认 (@google-cloud/pubsub)

Google Cloud Function - ImportError:无法从“google.cloud”(未知位置)导入名称“pubsub”

使用 Google Cloud PubSub 不断收到“向 Cloud PubSub 发送测试消息时出错...”

如何在 Google.Cloud.PubSub.V1 SubscriberServiceApiClientBuilder 中配置频道选项