gcloud 检查主题是否存在以及重用该主题的能力

Sah*_*has 5 gcloud-node google-cloud-pubsub

我正在使用gcloud-node

如果该主题已存在,createTopic api 将返回错误 409。是否有一个标志可以在发布消息时隐式创建主题,或者是否有 API 来检查主题是否已存在?

它易于使用 getTopics API,迭代响应主题数组并确定主题是否存在。只是想确保我不会写一些东西,如果它已经存在的话。

Ste*_*hen 3

是否有一个标志可以在发布消息时隐式创建主题,或者是否有 API 来检查主题是否已存在?

我相信您会遇到的问题是,如果将消息发布到不存在的主题,则会立即删除该消息。因此,它不会徘徊并等待创建订阅;而是会继续等待。它就会消失。

但是,gcloud-node 确实有一些方法可以在必要时创建主题:

var topic = pubsub.topic('topic-that-maybe-exists');
topic.get({ autoCreate: true }, function(err, topic) {
  // topic.publish(...
});
Run Code Online (Sandbox Code Playgroud)

事实上,几乎所有 gcloud-node 对象都具有get与上述相同的工作方式,即 Pub/Subsubscription或 Storagebucket或 BigQuerydataset等。

topic.get()以下是文档中该方法的链接:https: //googlecloudplatform.github.io/gcloud-node/#/docs/v0.37.0/pubsub/topic ?method=get