我已经成功地将我的RaspberryPi连接到了亚马逊网络服务IoT核心,并且能够毫无问题地发布/订阅"sdk/test/Python“主题。但是,每当我将主题更改为自定义值时,我都会得到一个"subscribeTimeoutException()“或"publishTimeoutException()”。
我已经运行了这个命令:
python aws-iot-device-sdk-python/samples/basicPubSub.py -e xxxxxxxxx-xxx.iot.us-west-2.amazonaws.com -r root-CA.crt -c RaspberryPi.cert.pem -k RaspberryPi.private.key
但是,当我尝试使用以下命令手动选择主题时,我得到了上述错误。
python aws-iot-device-sdk-python/samples/basicPubSub.py -e xxxxxxxxx-xxx.iot.us-west-2.amazonaws.com -r root-CA.crt -c RaspberryPi.cert.pem -k RaspberryPi.private.key -t testTopic
我尝试的另一个尝试是手动更改第46行的"default“值,我也得到了相同的异常。
在亚马逊网络服务的IoT控制台中,我可以发布/订阅"testTopic",这让我相信我可能缺少一个权限?
代码是:https://github.com/aws/aws-iot-device-sdk-python/blob/master/samples/basicPubSub/basicPubSub.py的直接副本
我想做的就是能够手动设置我的主题名称。有人对这个问题有什么见解吗?
发布于 2019-01-18 05:55:16
尝试:
测试/测试主题
希望在单个主题订阅中添加任意层次结构就足够了
发布于 2019-01-18 21:43:14
经过几个小时的挖掘,我发现您不能使用默认权限创建任意的主题名称。确保附加到设备的证书所附加的策略授予对所需主题名称的访问权限。在这种情况下,默认策略允许您发布/订阅主题sdk/test/Python、sdk/test/java、topic_1和topic_2。
如果您希望具有任意的“随需应变”主题名称,请在策略中的每个权限中添加通配符,例如:
"arn:aws:iot:us-west-2:000000000000:<topic/topicfilter/client/etc...>/*"
位于资源下。另请注意,在亚马逊网络服务IoT控制台中激活您的证书,以避免SSLError。
https://stackoverflow.com/questions/54246362
复制