如何部署消息排序的pubsub触发云函数?

jac*_*cob 6 google-cloud-platform google-cloud-pubsub google-cloud-functions

我想部署一个带有消息排序的 Pubsub 触发的云函数: https://cloud.google.com/pubsub/docs/ordering

gcloud functions deploy没有设置选项的选项--enable-message-orderinghttps ://cloud.google.com/sdk/gcloud/reference/functions/deploy

我应该在部署该函数之前预先创建订阅吗?如果是这样,Cloud Functions 是否有一种众所周知的格式来匹配订阅名称?看起来格式可能是:gcf-{function-name}-{region}-{topic-name},但名称格式似乎也随着时间的推移而改变,例如较旧的部署函数在订阅中没有区域名称。有稳定的方法可以做到这一点吗?

Seu*_*Lee 5

您必须手动创建消息排序发布/订阅和云函数。

首先,创建一个 pub/sub 主题,然后创建一个订阅 pub/sub 主题的订阅 --enable-message-ordering

其次,创建一个云函数来提供有序的发布/订阅消息。

最后,回到发布/订阅订阅,编辑交付类型以推送并指定您的云函数端点。

在此输入图像描述

所以最终的图如下所示。

发布者 -> Pub/sub 主题 -> Pub/sub 订阅者 -> 云函数

您尝试直接使用云功能连接发布/订阅主题。

但对于消息排序,Pub/sub 需要主题 -> 订阅者连接。

因此,只有 pub/sub 主题 -> pub/sub 订阅者 -> 云函数连接才能将有序消息传递到您的函数。

  • 正如你所看到的,自动创建的推送订阅(gcf-{function-name}-{region}-{topic-name})有一个带有 `appspot.com` 的 URL 端点。这是为了 Cloud function 的 pubsub 触发。您无法重复使用此订阅,因为它隐式使用 Appengine。当您删除此 pubsub 订阅以使用消息排序重新创建时,您无法再次指定此 URL 端点。总之,您不能重复使用自动创建的 pubsub 订阅,并且您不需要这样做来达到您的目的 (3认同)