如何确定已转发的影子更新的发送者?

0

【以下的问题经过翻译处理】 我在我的IoT服务中设置了一条规则,通过监测用于影子更新的保留名称为$aws/things/+/shadow/update的主题来检查从设备发来的影子更新请求。当它注意到我们认为异常的某些更新时,规则将消息转发到SQS队列。我们计划在EC2实例上运行一个服务器来监视此队列,以便它可以采取适当的行动。

我遇到的问题是,当EC2实例从队列接收消息时,它只得到包含设备请求的所需状态的JSON。但是在这个消息中没有包含发送它的设备的名称或身份。我需要那些信息来进行下一步操作。

一种解决方案可能是让设备本身在阴影状态中包含自己的名称,但我不是很想用这个方法。理想情况下,我想通过某种方式让规则将设备名称附加到消息中(或仅附加包含设备名称的主题的名称)。我没有看到规则发送修改后的消息或以这种方式附加信息的明显方法。这是一个可行的解决方案吗?

如果不是,建议采取什么方法?

谢谢, Frank

profile picture
专家
已提问 5 个月前4 查看次数
1 回答
0

【以下的回答经过翻译处理】 您可以使用SELECT子句来修改消息:https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-select.html

在这种情况下,您可能想要使用topic()函数:https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html

例如:SELECT *,topic(3) as thing FROM $aws/things/+/shadow/update

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则