0

我使用 python AWS IoT SDK 已经有一段时间了,但它似乎只允许通过事物进行交互。现在我想为我的物理设备编写自动测试。但是创建像“tester”这样的伪事物并让它访问测试设备主题对我来说似乎是错误的。我想要类似于 AWS IoT 控制台的东西,这样我就可以订阅和发布主题而无需创建任何额外的东西。不幸的是,我在文档中找不到类似的东西。有没有办法做到这一点?

4

1 回答 1

0

编辑:“我可以在没有 Things Registry 的情况下使用 AWS IoT Core 吗?”

是的,经过身份验证的设备可以与 MQTT 代理(“设备网关”)进行通信,而无需对应的ThingDevice Shadow物理设备。

来自常见问题解答问:我必须使用注册表和设备影子吗?您可以让应用程序使用 AWS IoT Core 中的设备网关和/或规则引擎直接与连接的设备通信。但是,我们建议使用注册表和设备影子

设备可以使用AWS IoT Device SDK for Python v2publish(topic, payload, qos, retain=False)提供的对象提供subscribe(topic, qos, callback=None)的 MQTT 客户端。mqtt.Connection

您还可以通过基本的消息摄取绕过消息代理,以直接发布到 IoT Core 规则(例如$aws/rules/my-rule)。


这可能会令人困惑,因为涉及多个 IoT SDK:

(1) Boto3 IoT Service:管理AWS资源。这就是你用来创造你的“东西”的东西。您可以在此处调用create_topic_rule以设置主题规则(例如device/+/test)。

(2) Boto3 IoTDataPlane Service:“通过HTTP发布消息(Publish)并检索、更新和删除影子”

response = client.publish(
    topic='string',
    qos=123,
    retain=True|False,
    payload=b'bytes'|file
)

(3)适用于 Python 的 AWS IoT 设备 SDK v2:设备端“AWS IoT 设备 API 的 Python 绑定”。该 repo 包含一个 pubsub示例,用于:

通过 MQTT 连接发送和接收消息。启动时,设备连接到服务器,订阅一个主题,并开始向该主题发布消息。设备应该从消息代理接收这些相同的消息,因为它订阅了相同的主题

于 2021-11-22T11:33:34.683 回答