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_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 中配置频道选项