Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python订阅过期_Python_Google Cloud Platform_Google Cloud Pubsub - Fatal编程技术网

python订阅过期

python订阅过期,python,google-cloud-platform,google-cloud-pubsub,Python,Google Cloud Platform,Google Cloud Pubsub,我有创建主题和订阅的python代码,但我想创建当前没有过期日期的订阅,31天是订阅过期的默认值。如果在创建订阅时没有给出任何内容,我的python代码也一样: publisher = pubsub_v1.PublisherClient() subscriber = pubsub_v1.SubscriberClient() project_path_topic = publisher.project_path('project') project_path_sub = subscriber.p

我有创建主题和订阅的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)
现在,我想覆盖ever的过期,但是我没有从文档中找到任何可以在python代码中轻松设置的现有标志

有一种方法,但我不想使用它,因为我的整个代码都是用python编写的,为什么不只通过python api来处理呢

如果您知道我如何在python代码库中实现它,请提供帮助,假设所有LANG将只使用相同的google后端API。(我可以看到它处理过期策略(expirationPolicy),但在中没有看到相同的)


注意-我创建的是拉式订阅而不是推式订阅。

这是一个非常糟糕的文档,但我成功了!这是密码

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

我想将订阅到期设置为从不,仅在创建时,当我尝试此
expiration\u policy=pubsub\u v1.types.ExpirationPolicy()
创建订阅时,我得到一个错误=>“TypeError:{'paths':set(['expiration\u policy'])的类型为dict,但应为:bytes,unicode”,意味着我应该为过期策略分配一些值。我不能将此设置为空。你知道现在该做什么吗?我将对我的现有订阅使用更新订阅。我也希望在创建时处理相同的订阅。好的,不清楚,我知道您只想更新订阅。让我测试一下,我很快就会发布一个更新。我知道了如何创建订阅
subscription=subscriber。创建订阅(name=subscription\u path,topic=topic\u path,expiration\u policy=expiration\u policy)
,我们不需要任何“更新掩码”属性来设置创建的过期策略。非常感谢您的帮助@guillaumeGood news!!实际上,更新掩码是为了向API指示要更新的部分。如果您创建了,您就不需要它,而是创建了您提供的所有零件。