是否可以通过 Pub/Sub 主题上的消息子集触发云功能?

Posted

技术标签:

【中文标题】是否可以通过 Pub/Sub 主题上的消息子集触发云功能?【英文标题】:Can a cloud function be triggered by a subset of messages on a Pub/Sub topic? 【发布时间】:2021-10-22 20:08:18 【问题描述】:

我查看了 Cloud Pub/Sub Tutorial,它解释了如何编写云函数(在 Python 中)以使用来自 Pub/Sub 主题的消息并对其采取行动。

我的用例略有不同。我的云功能感兴趣的主题只有一部分消息,它们是带有特定attribute 的消息。我不想在云函数中询问消息以查看它是否具有正确的属性,因为我仍然需要支付执行该函数的成本,我宁愿只为具有以下内容的消息执行云函数他们身上的属性。

有没有办法指定我的函数应该只使用具有特定属性的消息?

【问题讨论】:

【参考方案1】:

如果你创建一个后台函数,我的意思是一个由 PubSub 主题直接调用的函数,你不能。

要实现您想要的,您需要创建HTTP functions 并使用message filtering (the filtering is enforced on the message attributes only) 创建推送订阅

【讨论】:

【参考方案2】:

不,没有。听起来您应该改用多个主题,每个主题对应一个您想要隔离的可能情况,以分离功能或目的。

来自documentation(强调我的):

发布到该主题的每条消息都会触发函数执行,消息内容作为输入数据传递。

【讨论】:

以上是关于是否可以通过 Pub/Sub 主题上的消息子集触发云功能?的主要内容,如果未能解决你的问题,请参考以下文章

gcp 云函数 pub/sub 主题死信

Google Pub/Sub - 将消息发布到主题后,未从本地函数中找到事件数据

GCP Pub/Sub 消息发送到创建主题之前存在的订阅

从 Google Cloud Run 托管应用程序触发的 Pub/Sub 消息需要很长时间

如何触发 Firebase 模拟器的 Pub/Sub 主题

Google Pub/Sub - 多个订阅同一主题以通过 REST API 减少负载?