Google cloud platform 使用代理访问mqtt.googleapis.com(云物联网)的专有网络专用谷歌API

Google cloud platform 使用代理访问mqtt.googleapis.com(云物联网)的专有网络专用谷歌API,google-cloud-platform,google-cloud-iot,google-cloud-networking,Google Cloud Platform,Google Cloud Iot,Google Cloud Networking,我已经启用了VPC,我使用上面描述的方法将我的异地数据中心连接到Google云后端 使用该解决方案,我通过使用gsutil在异地网络上移动文件,验证了Google对象存储api的工作 但是,我无法连接到云物联网所需的mqtt.googleapis.com 我认为这是因为运行在MQTT.googleapis.com上的MQTT代理无法通过专用网络访问,除非它也像上面描述的HTTP代理解决方案一样被代理 同时,实际的gsutil IOT命令工作正常,因为我认为它们是在googlehttpapi上运行

我已经启用了VPC,我使用上面描述的方法将我的异地数据中心连接到Google云后端

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

但是,我无法连接到云物联网所需的mqtt.googleapis.com

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

同时,实际的gsutil IOT命令工作正常,因为我认为它们是在googlehttpapi上运行的

要解决这个问题,我想我们需要下面的任何一个,除非有人有不同的方法

  • 在专用VPC中运行MQTT代理,并将MQTT数据包路由到MQTT.googleapis.com。在这种情况下,我们是否可以使用合适的MQTT代理代理

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


  • 它会通过物联网核心中的HTTP协议桥工作吗?使用HTTP而不是MQTT是一种选择吗?

    我使用NGINX作为反向代理成功地实现了这一点,并将TCP流量直接传输到MQTT.googleapis.com。以下是实现这一目标的步骤

  • 使用
    --with stream
    配置标志安装Nginx。这将构建具有TCP流代理功能的Nginx
  • 我的Nginx conf文件包含以下内容,指向谷歌的代理。Nginx服务器正在VPC中的一个实例中运行
  • /etc/nginx/nginx.conf

  • 内部专用VPC有一个DNS服务器,可将
    mqtt.googleapis.com
    解析为Nginx服务器的IP

  • 不,因为我们想要设备心跳。在配置为MQTT.googleapis.com上代理MQTT连接的代理的VM实例中构建MQTT代理是否有意义?是否有解决方案?没有现成的解决方案。代理很可能是一条出路。我没有任何私有API访问的经验,所以我不确定。我不知道一个简单的“就这么做”解决方案(很抱歉!您在尝试访问mqtt.googleapis.com时是否遇到任何错误或只是超时?请尝试以下内容:“ping mqtt.googleapis.com”和traceroute“mqtt.googleapis.com”。此外,根据应用程序,可能需要在您的办公场所和谷歌网络中添加一些。我找不到任何文档表明通过私人谷歌访问是否可行。
     stream {
        upstream google_mqtt {
                server mqtt.googleapis.com:8883;
        }
        server {
                listen 8883;
                proxy_pass google_mqtt;
        }
    }