【问题标题】:Google Cloud Pub/Sub TriggersGoogle Cloud Pub/Sub 触发器
【发布时间】:2021-02-21 02:34:07
【问题描述】:

我对 GCP 很陌生。当消息发布到发布/订阅主题时,我需要触发 Cloud Function(CF)。当 pub/sub 和 CF 在同一个项目中时,我可以轻松地做到这一点。但就我而言,发布/订阅主题和 CF 位于两个不同的项目中。谁能建议我如何解决这个问题?谢谢!

【问题讨论】:

  • 在项目 A 中编写一个 pubsub 函数,将消息负载代理到项目 B 中的主题,并编写一个单独的函数来处理它。您不能简单地编写响应其他项目主题的函数。

标签: google-cloud-platform google-cloud-functions publish-subscribe google-cloud-pubsub


【解决方案1】:

我同意我的 2 位同行(Gabe 和 Doug)的“代理”解决方案。但是,缺少解释,我还有另一种解决方案!

问题是:您无法创建从另一个项目中的主题触发的云函数主题。主题必须与 Cloud Function 在同一个项目中(这就是需要 Cloud Function 代理的原因)。

但是,您也可以在 HTTP triggered 中部署您的 Cloud Function,然后在任何项目中为 Cloud Function 创建一个 PubSub HTTP Push subscription

您可以部署您的function in private mode(--no-allow-unauthenticated 模式)并授予PubSub subscription service account 调用云函数的权利以提高安全性。

【讨论】:

    【解决方案2】:

    Doug 在他们的评论中说了什么。

    您想将项目 A 中的 Pub/Sub 转到项目 B 中的 GCF 意味着您在项目 A 中有一个 GCF 写入项目 B 的 Pub/Sub(您需要在要求中为项目 B 获取服务帐户用于项目 A 的 GCF)。然后,您在项目 B 中的 GCF 可以选择自己的 Pub/Sub,该 Pub/Sub 将消息从项目 A 中的 GCF 转发给它。

    当然会增加一点延迟,因为它是多跳,但只要项目在同一个区域,它应该是最小的。

    【讨论】:

      猜你喜欢
      • 2019-12-26
      • 2021-08-22
      • 2022-01-01
      • 2022-01-13
      • 2021-12-12
      • 1970-01-01
      • 2018-09-08
      • 2020-02-21
      • 1970-01-01
      相关资源
      最近更新 更多