0

我为 VPC启用了私有 Google API 访问权限,并使用描述的这个HTTP 代理解决方案将我的异地数据中心连接到 Google Cloud 后端。

使用该解决方案,我通过使用 gsutil 在异地网络中移动文件来验证 Google 对象存储 api 的工作。

但是,我无法连接到云 IOT 所需的 mqtt.googleapis.com。

我认为这是因为在 mqtt.googleapis.com 上运行的 MQTT 代理无法通过专用网络访问,除非它也像上述 HTTP 代理解决方案一样被代理。

同时,实际的 gsutil IOT 命令可以正常工作,因为我认为它们是通过 Google HTTP API 运行的。

为了解决这个问题,我看到我们需要以下任何一种,除非有人有不同的方法来做到这一点?

  1. 在私有 VPC 中运行 MQTT 代理代理并将 MQTT 数据包路由到 mqtt.googleapis.com 。在这种情况下,我们可以使用合适的 MQTT 代理代理吗?

  2. 如果我们获得 mqtt 网桥 (mqtt.googleapis.com) 正在运行的一系列公共 IP,那么我们可以简单地为这个用例构建网络路由。这是可用的吗?

4

2 回答 2

0

我设法使用 NGINX 作为反向代理使其工作,并将 TCP 流量直接流式传输到 mqtt.googleapis.com。以下是实现这一目标的步骤

  1. --with-stream使用配置标志安装 Nginx 。这构建了具有 TCP 流代理功能的 Nginx
  2. 我的 Nginx conf 文件包含以下内容以指向 Google 的代理。Nginx 服务器在 VPC 中的一个实例中运行

/etc/nginx/nginx.conf

 stream {
    upstream google_mqtt {
            server mqtt.googleapis.com:8883;
    }
    server {
            listen 8883;
            proxy_pass google_mqtt;
    }
}
  1. 内部私有 VPC 有一个 DNS Server 解析mqtt.googleapis.com到 Nginx 服务器的 IP
于 2018-06-13T22:49:35.180 回答
0

它会通过 IoT Core 中的 HTTP 协议桥接工作吗?是否可以选择使用 HTTP 而不是 MQTT?

于 2018-06-11T18:10:10.503 回答