如何使用Python API为其他Google Cloud Platform项目中的主题创建PubSub订阅?

时间:2016-12-07 23:35:46

标签: google-cloud-python

API似乎允许我为不同项目中的主题创建订阅,但是当我检查新创建的订阅时,它与主题所在的项目相关联。

from google.cloud import pubsub

pubsub_client_publisher = pubsub.Client("publisher-project")
topic = pubsub_client_publisher.topic("topic1")

pubsub_client_receiver = pubsub.Client("receiver-project")
subscription = pubsub.subscription.Subscription("subscription1", topic)
subscription.create(pubsub_client_receiver);    # the argument is ignored

print('Subscription {} created on topic {}.'.format(
    subscription.full_name, topic.full_name))

这不能通过Web控制台完成。还有其他API吗?或者我错过了什么?

我正在尝试遵循此API参考: https://googlecloudplatform.github.io/google-cloud-python/stable/pubsub-subscription.html

我将其作为本地执行的Python脚本运行。 默认项目(gcloud config get-value项目)是接收器项目。

1 个答案:

答案 0 :(得分:2)

通常,Cloud Pub / Sub服务支持跨项目订阅,但是在旧版本的python客户端库中对此的支持有限。此问题已在较新版本中修复。这可以像:

from google.cloud import pubsub_v1 as pubsub
c = pubsub.SubscriberClient()
t = c.topic_path('topic_project', 'topic_name')
s = c.subscription_path('subscription_project', 'subscription_path')
c.create_subscription(s,t)

您也可以使用gcloud CLI执行此操作。查看gcloud pubsub subscriptions --help

Cloud Console Web UI目前不支持此功能。