Google Cloud IoT核心练习

时间:2017-10-10 08:55:33

标签: python google-cloud-platform google-cloud-iot

我正在研究Google Cloud IoT核心,在那里我遇到了在线文档中提供的一个示例(端到端示例)中的问题:google cloud iot exercise

对于服务器和设备,有两个脚本,在运行设备脚本时,我遇到了这个问题:

3 个答案:

答案 0 :(得分:1)

从命令行args看起来,你传递的是rsa_cert.pem,这是你的SSL私钥。正如@class所说,您需要获取Google根证书(wget https://pki.google.com/roots.pem),然后将路径传递给下载的roots.pem以获取--ca_certs参数。

答案 1 :(得分:0)

您的防火墙(例如Cloud Shell Machine)可能会阻止Python通过端口8883进行连接。您可以尝试使用端口设置为443来调用cloudiot_pubsub_example_mqtt_device.py脚本,例如

python <your_existing_parameters> --mqtt_bridge_port=443

您可能还想尝试使用the HTTP device sample发布消息,因为它也不使用可能在您的网络上阻止的端口8883。

在我的测试中,我只能在将端口设置为443后从Google Cloud Shell运行练习,这有望为您解决问题。

注意如果您在验证服务器证书时遇到问题,则需要通过以下方式下载Google根证书:

wget https://pki.google.com/roots.pem

更新您可能还想通过将虚拟环境设置为以下内容,尝试将虚拟环境中的Python版本设置为Python 2:

virtualenv env --python=python2

答案 2 :(得分:0)

error image

Traceback (most recent call last):
  File "cloudiot_pubsub_example_mqtt_device.py", line 249, in <module>
    main()
  File "cloudiot_pubsub_example_mqtt_device.py", line 213, in main
    client.connect(args.mqtt_bridge_hostname, args.mqtt_bridge_port)
  File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 
768, in connect
    return self.reconnect()
  File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 
927, in reconnect
    sock.do_handshake()
  File "/usr/lib/python2.7/ssl.py", line 788, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 
(_ssl.c:581)