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

如何在本地环境接收Google Pub/Sub推送通知?

解决本地接收Google Pub/Sub推送通知的方案

不需要强制部署Cloud Function,有两种常用方案满足你的需求:

方案一:使用本地隧道工具(最简单直接)

Google Pub/Sub推送订阅要求HTTPS公网URL,你可以用本地隧道工具把本地端点暴露成公网HTTPS地址,直接配置到订阅中:

  • 常用工具比如ngrok,启动命令示例:ngrok http 8080(假设本地端点运行在8080端口)
  • 工具会生成一个类似https://xxxx-xx-xx-xx-xx.ngrok.io的公网HTTPS地址,将这个地址填入Pub/Sub推送订阅的URL配置即可
  • 本地端点只需正常处理POST请求,不需要额外安装Pub/Sub SDK,直接解析请求体中的Pub/Sub消息内容即可

方案二:用Cloud Function做中转(适合需要中间处理的场景)

如果需要在消息到达本地前做一些预处理,或者不想用隧道工具,可以部署Cloud Function作为中转层:

  1. 配置Pub/Sub推送订阅,将目标URL设为Cloud Function的HTTPS触发地址
  2. 在Cloud Function中编写逻辑,接收Pub/Sub的推送请求,然后将消息转发到你的本地端点
  3. 注意:本地端点需要能被Cloud Function访问到(比如本地机器有公网IP,或者通过VPN、内网穿透打通网络)

示例Node.js Cloud Function代码:

exports.forwardPubSubMessage = async (req, res) => {
  const message = req.body.message;
  const payload = Buffer.from(message.data, 'base64').toString();
  
  // 转发到本地端点
  await fetch('http://你的本地端点IP:端口/路径', {
    method: 'POST',
    body: JSON.stringify({ payload, messageId: message.messageId }),
    headers: { 'Content-Type': 'application/json' }
  });

  res.status(200).send('Message forwarded');
};

这种方式下,Cloud Function不需要专门的Pub/Sub SDK,因为推送模式是通过HTTP请求传递消息的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:58:14