如何在使用 triggerTopic 创建云功能时设置发布订阅消息过滤器

Posted

技术标签:

【中文标题】如何在使用 triggerTopic 创建云功能时设置发布订阅消息过滤器【英文标题】:How to set pubsub message filter while creating cloud-function with triggerTopic 【发布时间】:2021-05-27 12:37:13 【问题描述】:

我试图创建一个可以由 pubsub 主题触发的谷歌云功能。我使用谷歌部署管理器模板来创建它。但是我找不到任何方法来为该云功能设置订阅者消息过滤器。 我尝试在创建云功能资源之前和之后创建订阅。但无论如何它都不起作用。 如果我在创建云函数之前创建它,那么在创建资源之后它会覆盖订阅者函数并删除过滤器。

是否可以使用谷歌部署管理器模板为任何发布订阅云功能设置订阅者消息过滤器?

【问题讨论】:

【参考方案1】:

事实上,这根本不可能。当您在 trigger-topic 模式下部署云函数时,您无法在订阅上设置过滤器(它是自动创建的)。这不是部署管理器的限制。

如果要在激活过滤器的情况下触发 PubSub 消息上的 Cloud Function,则需要

以 HTTP 模式部署您的函数 (trigger-http) 创建一个推送订阅以在 HTTP 中使用参数中的消息调用 Cloud Functions。当你创建推送订阅时,这一次,你可以设置你想要的过滤器 保护推送订阅和云函数之间的通信(在触发主题模式下自动构建安全性(别名后台函数))

【讨论】:

你知道为什么 google 没有为事件触发函数提供这个选项吗? 不知道,可能是太复杂了,系统太老了。一个新的 Cloud Functions 环境即将到来,它会更加灵活,我相信这个功能是可以实现的;但不知道会不会!

以上是关于如何在使用 triggerTopic 创建云功能时设置发布订阅消息过滤器的主要内容,如果未能解决你的问题,请参考以下文章

在创建 Stripe 客户时,在 Android 中使用与在 iOS 中相同的云功能

在创建文档时触发云功能时获取“对象可能未定义”[重复]

如何使用云功能或某些自动触发器将视图中的数据插入表中。

如何使用 Terraform 公开 gcp 云功能

部署firebase云功能时创建功能项目失败

BigQuery 云功能