从 Memorystore Redis PubSub 消息触发 Cloud Run API

Posted

技术标签:

【中文标题】从 Memorystore Redis PubSub 消息触发 Cloud Run API【英文标题】:Triggering Cloud Run API from a Memorystore Redis PubSub Message 【发布时间】:2021-12-28 04:20:24 【问题描述】:

我有一个在 GCP Memorystore 中运行的 Redis 实例,并且我在这个实例上启用了notify-keyspace-events。我的最终目标是在某些键过期时从我的 Redis 实例发布消息,并在这些事件中调用我在 Cloud Run 上拥有的服务,并将键的数据作为输入。

我如何看待构建这个?我能想到的唯一方法是让一个线程始终在我的 Cloud Run 实例中运行,以检查 Redis Pub/Sub 通道中的新消息。恐怕这可能行不通,因为 Cloud Run 不允许后台任务。

我正在考虑一种在生成 Redis 消息时向我的 Cloud Run 服务生成 POST 请求的方法,但目前还没有找到方法。

【问题讨论】:

【参考方案1】:

到目前为止,我所知道的可以将 Cloud Pub/Sub 与 Cloud Run 集成在一起,如这些指南 here 和 here 中所述。

我不确定的是,您是否能够以某种方式将 GCP 内存存储中的事件发布到 Pub/Sub 主题。也许,如果您能够实时读取 Redis 密钥的启发,您可以手动将这些事件作为消息发布到您的 Pub/Sub 主题,然后您的 Cloud Run 订阅相同的主题以接收来自它的消息。

您可以考虑的另一件事是使用Cloud Background Functions。

至于向您的 Cloud Run 服务发送直接 POST 请求,以下documentation 可能对您有用。

【讨论】:

以上是关于从 Memorystore Redis PubSub 消息触发 Cloud Run API的主要内容,如果未能解决你的问题,请参考以下文章

从 Memorystore Redis PubSub 消息触发 Cloud Run API

GCP GKE不能访问Redis Memorystore。

为啥 GCP“Memorystore for Redis”不允许添加公共 IP 的选项?

Spark内存数据存储(MemoryStore)的实现

express.session.MemoryStore 不返回会话?

内存存储 MemoryStore