python pubsub 订阅到期

python pubsub subscription expiration

我有 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)

现在,我想永远覆盖过期,但我没有从文档中找到任何可以在我的 python 代码中轻松设置的现有标志。

uses command line 的方式,但我不想使用它,因为我的整个代码已经用 python 编写,为什么不通过 python api 只。

如果您知道我如何在 python 代码库中实现它,请提供帮助,假设所有语言将仅使用相同的 google 后端 api。(我可以看到 backend api it dealing with expiration policy(expirationPolicy) but did not see the same in python api doc)

注意 - 我创建的是拉取基础订阅而不是推送。

记录的很糟糕,但我成功了!这里的代码

    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})