[英]AWS IoT Shadow - How to handle or reject invalid "desired" states?
AWS IoT Shadow 支持处理无效状态。 根据我对 AWS 文档的理解,当一条消息发布到/update
并且它被认为无效(例如,因为它是无效的 json)时,一条错误消息将发布到/update/rejected
per specification here https://docs.aws .amazon.com/iot/latest/developerguide/device-shadow-error-messages.html
这很清楚,但它只涉及一般的 state 更新失败。
问题:
如果 AWS IoT 影子 state 更新从 AWS IoT Shadow 服务的角度来看是有效的,但从设备的角度来看它不是有效的所需 state 怎么办?
例如,假设设备支持"state": {"desired": {"color": "red"}}
和"state": {"desired": {"color": "green"}}
。
如果设备不支持黑色,那么处理"state": {"desired": {"color": "black"}}
? 这可以通过任何默认的影子主题进行交流吗?
注意:我在这里发现了一个类似的(未回答的)问题: https://forums.aws.amazon.com/thread.jspa?threadID=300362
我最近遇到了类似的问题,并在 AWS 论坛上找到了这篇帖子:
基本上,客户端可以清除设备影子文档的“所需”部分,以表明它已拒绝更改。 这将阻止针对该特定更改的任何更多“增量”消息。 您可以通过使用null向/update发送消息来清除设备影子“所需”部分,如下所示:
清除整个所需部分:
{
"state" : {
"desired" : null
}
}
清除单个字段:
{
"state" : {
"desired" : {
"MyField" : null
}
}
}
但是,这不会通知另一端(云、移动应用程序等)他们请求的“所需”state 无效。
为此,您可以将自己的消息发布到/update/rejected ,尽管我还没有尝试过。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.