shadow/update 请求被拒绝,错误代码为413。 JSON大小为44B。

0

【以下的问题经过翻译处理】 我正在使用ESP32作为简单计数器,我的程序已经运行了几个月。为了发送更多的数据,我做了一些微小的改动,但是我遇到了这个错误。JSON有效负载的大小只有约50。 但是,数据按照我的规则存储在DynamoDB表中,没有出现错误。为什么设备信息返回到了rejected主题上,而不是accepted主题上呢?

14:49:33.250 -> $aws/things/Dev3/shadow/update - {"state": {"reported": {"9": "53,192,1667553572"}}}

14:49:33.250 -> $aws/things/Dev3/shadow/update/rejected - {"code":413,"message":"Json document too large. Size is 8202, max allowed: 8192"}

谢谢。

profile picture
전문가
질문됨 6달 전65회 조회
1개 답변
0

【以下的回答经过翻译处理】 问题是您的总影子文档大小大于8192,不一定是您发送的有效负载。AWS IoT将当前有效负载合并到现有的影子文档中。在您的示例中,"reported"中的键是"9"。我不知道这代表什么,但是如果您发送了具有多个键值(例如"8"、"10"等)的更新,它们都将合并到影子文档中。请通过控制台、CLI或API调用(例如https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-rest-api.html#API_GetThingShadow)检查影子文档。

要删除整个影子内容,您可以使用DeleteThingShadow。要删除单个键/字段,只需发送一个JSON文档,其中字段值设置为"null"。

首先,我会检查您是否正在使用影子来存储设备的最新状态,而不是保存历史数据。如果已经这样,您可能有太多数据要存储在单个设备影子中。在这种情况下,您可以考虑将数据分区到多个命名影子中,其中每个命名影子文档具有8192字节的限制,但是在命名影子的数量上没有限制。

祝好。

Massimiliano

profile picture
전문가
답변함 6달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠