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项目)是接收器项目。
答案 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目前不支持此功能。