我有python代码创建主题和订阅,但我想创建订阅目前没有截止日期,31天是订阅到期的默认值,如果在创建订阅时没有给出,我的python代码相同:
publisher = pubsub_v1.PublisherClient()
subscriber = pubsub_v1.SubscriberClient()
project_path_topic = publisher.project_path('project')
project_path_sub = subscriber.project_path('project')
topic_path = publisher.topic_path('project', 'topic-name')
subscription_path = subscriber.subscription_path('project', 'subscription-name')
topic_path = publisher.topic_path(project_id, topic_name)
subscription_path = subscriber.subscription_path(project_id, sub_name)
# topic and sub creation
topic_created = publisher.create_topic(topic_path)
subscription = subscriber.create_subscription(subscription_path, topic_path)
现在,我想覆盖expires for never,但是我没有从文档中找到任何可以在python代码中轻松设置的现有标志。
有一种方法是使用命令行,但我不想使用它,因为我的整个代码都是用python编写的,所以为什么不只通过python api来处理这个问题呢?
请帮助,如果你知道我如何能在python代码库中实现它,假设所有的语言将只使用相同的谷歌后端api。(我可以看到后端api处理过期策略(expirationPolicy),但在python api文档中没有看到相同的)
注意-我创建的是拉订阅,而不是推订阅。
这是非常糟糕的文档,但我成功了!这里的代码
update_mask = {"paths": {"expiration_policy"}}
# expiration_policy = pubsub_v1.types.ExpirationPolicy(ttl= pubsub_v1.types.Duration(seconds=605000))
expiration_policy = pubsub_v1.types.ExpirationPolicy()
subscription = pubsub_v1.types.Subscription(name=subscription_path, expiration_policy=expiration_policy)
subscription = subscriber.update_subscription(request={"subscription": subscription, "update_mask": update_mask})