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
EXPERTE
gefragt vor 6 Monaten62 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen