是否可以在不重新创建 PubSub 订阅的情况下修改全局确认截止日期?

Is it possible to modify the global acknowledgement deadline for a PubSub subscription without re-creating it?

我们使用 GCP Web GUI 创建了一个默认确认截止时间为 10 秒的 pull PubSub 订阅。事实证明,我们太乐观了,我们的服务处理一批拉取的消息需要 10 多秒。该服务不会抛出异常,它实际上会处理所有消息,但由于截止日期已过,在某些情况下我们最终会不止一次处理重新传递的消息。有没有办法更新订阅的默认截止日期?我们知道这可以通过每条消息完成。我们还知道可以使用 REST API 为 push 订阅完成此操作。我们希望避免代码更改,以及必须使用新的默认截止日期重新创建订阅。

如果不删除订阅并创建一个延长确认期限的新订阅就无法做到这一点,有没有一种安全的方法可以即时执行此操作,而无需禁用消费者,所以在此期间发布到该主题的消息没有丢失吗?

原来有一个 gcloud 命令行功能的 alpha 版本,有关详细信息,请参阅 gcloud alpha pubsub subscriptions update 文档。

不幸的是,正如文档所述,此功能是基础云 Pub/Sub API.[=12 的仅限受邀版本的一部分=]

现在可以更新订阅的确认截止日期而无需重新创建它。可以通过 gcloud console or command line

完成

我不确定它是什么时候被添加为一个功能的,但它确实非常方便。