You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Memorystore Redis PubSub消息触发Cloud Run API调用

实现架构方案

你担心的Cloud Run不支持后台常驻任务的问题确实存在,默认配置下Cloud Run实例空闲时会被缩容到0,且无请求时CPU会被节流,无法稳定运行Redis Pub/Sub监听逻辑。以下是两种生产可用的实现方案:

方案1:轻量监听中转方案(成本最低)

  • 单独部署一个极简的Cloud Run服务做专属监听,配置该服务的最小实例数为1,同时开启CPU 始终分配(关闭CPU节流),即可保证监听进程持续稳定运行,不会被系统回收。
  • 该监听服务仅需实现两个逻辑:1)订阅Redis的__keyevent@<数据库编号>__:expired通道;2)收到过期事件后,提取key信息组装参数,POST调用你的业务Cloud Run服务即可。
  • 单实例监听成本极低,完全可以满足中小规模的过期事件处理需求。

方案2:解耦高可用方案(适合生产环境)

如果你需要更高的可靠性、自带重试能力,可引入GCP Pub/Sub做事件中转:

  • 同样部署最小实例数为1的监听服务,收到Redis过期事件后,先将事件数据推送到自定义的GCP Pub/Sub主题。
  • 为该Pub/Sub主题配置推送订阅,将推送端点设置为你的业务Cloud Run服务的调用地址,Pub/Sub会自动以POST请求的形式将事件推送到Cloud Run,还自带失败重试、死信队列等能力,不需要自己开发可靠性逻辑。

关键注意点

  • Redis默认的过期事件通知仅会返回过期的key名称,不会返回key对应的原始值。如果你需要将原始值作为入参调用服务,需要在设置key过期时间的同时,将key和对应的值备份到持久化存储(如Firestore、Cloud SQL),收到过期事件后先查询备份存储获取原值,再调用Cloud Run即可。
  • 确认Memorystore实例的notify-keyspace-events配置已包含Ex参数,确保过期事件会被正常发布。

内容的提问来源于stack exchange,提问作者SolidSnake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:54:04