【问题标题】:Unable to change topic name on RaspberryPi when connected through AWS-IoT Core通过 AWS-IoT Core 连接时无法更改 RaspberryPi 上的主题名称
【发布时间】:2019-01-18 00:52:00
【问题描述】:

我已成功地将我的 RaspberryPi 连接到 AWS IoT Core,并且能够毫无问题地发布/订阅“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 行的“默认”值,我也遇到了同样的异常。

在 AWS IoT 控制台中,我能够发布/订阅“testTopic”,这让我相信我可能会丢失权限?

代码直接复制:https://github.com/aws/aws-iot-device-sdk-python/blob/master/samples/basicPubSub/basicPubSub.py

我想做的就是能够手动设置我的主题名称。有人对这个问题有任何见解吗?

【问题讨论】:

    标签: python amazon-web-services raspberry-pi aws-iot


    【解决方案1】:

    尝试:

    测试/测试主题

    希望向单个主题订阅添加任意层次结构就足够了

    【讨论】:

    • 我很欣赏这个想法,但不幸的是我仍然遇到同样的错误。
    • 感谢您发布解决方案,我没想到会这样。特别是因为普通的 AWS IoT 设备不需要将主题插入到证书中。
    【解决方案2】:

    经过数小时的挖掘,我发现您无法使用默认权限创建任意主题名称。确保您附加到设备的证书的策略授予对所需主题名称的访问权限。在这种情况下,默认策略允许您发布/订阅主题“sdk/test/Python”、“sdk/test/java”、“topic_1”和“topic_2”。

    如果您希望拥有任意“按需”主题名称,请在策略中的每个权限中添加通配符,例如:

    "arn:aws:iot:us-west-2:000000000000:<topic/topicfilter/client/etc...>/*"
    

    位于资源下。另请注意,在 AWS IoT 控制台中激活您的证书以避免 SSLError。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2018-01-25
      • 2021-01-09
      • 2021-10-11
      • 2019-07-02
      • 2021-09-21
      • 2018-04-26
      相关资源
      最近更新 更多