You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何从AWS IoT获取的MQTT JSON载荷失真?Lambda消息层级丢失求解

问题原因及解决办法

哦,这个坑我之前踩过!你遇到的层级丢失问题,99%是AWS IoT Core的规则动作配置做了消息内容过滤,导致Lambda只收到了被截断后的部分消息。

具体原因

当你把Lambda设为IoT规则的触发动作时,默认情况下IoT Core会把完整的消息体传给Lambda,但如果你的规则配置里做了以下操作:

  • 在Lambda动作的「Payload」设置中,选择了「Attribute」而非「Raw payload」
  • 并且指定了JSON提取路径,比如$.desired.one

那IoT Core就会自动提取这个路径对应的内容,只把{"two": "is two"}传给Lambda,自然就丢失了上层的desired和one层级。

验证&解决步骤

  1. 打开AWS IoT Core控制台,找到触发这个Lambda的那条规则
  2. 查看规则里的Lambda动作配置,找到「Payload」选项
  3. 如果当前是「Attribute」模式,改成「Raw payload」并保存配置
  4. 重新发送测试消息,你的Lambda就能收到完整的{ "desired": { "one": { "two": "is two" } } }了

额外提示

如果你确实需要在IoT规则里做部分内容提取,但现在想调试完整消息,可以先临时切换到Raw payload模式,确认完整消息能正常接收后,再根据需求调整提取路径。

内容的提问来源于stack exchange,提问作者Mohammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:26:15