我们正在AWS中设置基础架构以从IOT设备收集数据 . 一旦设备注册,他们将开始向几个MQTT主题发送json消息 . 为了接收消息并解析它们并将数据保存到数据库中,我计划创建一个规则,在收到消息时触发Lambda函数 . Lambda函数进行解析 .
基于AWS IoT documentation,可以在IoT下创建规则,以评估您的事物使用 SELECT * FROM 'mymsgs/+'
等查询发送的消息 . 该规则似乎与任何特定设备无关 . 那么我可以假设它可以收听同一帐户下所有设备的主题吗?如果是这种情况,我可以只使用一个Lambda函数来处理来自不同设备的所有消息 .
1 回答
正确的主题规则与任何设备都没有关联 . 使用FROM语句来控制它们收到的消息 . 您可能希望将SQL语句更新为
这样你的lambda就可以知道发送消息的主题了 . 如果设备在主题
mymsgs/device
上发布{ foo: "bar", baz: 100 }
则将被发送到lambda函数 .
您还可以使用附加到事物证书的IoT策略来强制事物仅发布它应该的主题 .