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

AWS IoT Core无法将MQTT数据写入DynamoDB求助

排查AWS IoT Core规则写入DynamoDB失败的步骤

1. 验证IAM角色权限

确保IoT规则关联的IAM角色拥有写入DynamoDB表的权限,最少需要包含以下权限策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:<你的区域>:<你的账号ID>:table/vopak_data"
        }
    ]
}

注意替换<你的区域>和<你的账号ID>为实际值。如果使用dynamodbv2的批量写入功能,还需添加dynamodb:BatchWriteItem权限。

2. 检查DynamoDB主键匹配

你的DynamoDB表主键为time(字符串类型),需确认:

  • 表中time字段的类型为字符串,与消息中time字段的格式完全匹配
  • 避免重复的time值:若两条消息time完全一致,选择INSERT操作会报错,选择PUT则会覆盖原有条目,可检查表中是否已有相同time的记录

3. 核对IoT规则的DynamoDBv2配置

结合你的配置截图,需确认:

  • 表名准确填写为vopak_data
  • 操作类型符合需求:插入新数据选INSERT,允许覆盖选PUT
  • 分区键名称填写为time(你的表无排序键,无需填写排序键相关配置)

4. 查看IoT规则执行日志

开启IoT Core日志记录,定位具体报错:

  1. 进入AWS IoT控制台 → 设置 → 日志
  2. 开启日志,设置日志级别为ERROR或DEBUG
  3. 前往CloudWatch日志组,查看规则执行时的错误详情(如权限不足、字段不匹配、主键冲突等)

5. 测试规则SQL语句

在IoT控制台的规则测试功能中验证SQL有效性:

  • 进入规则详情页 → 测试SQL
  • 粘贴你的测试消息,确认输出包含所有字段(包括time)

6. 确认消息格式合法性

你的测试消息为有效JSON格式,但需确保实际发送的消息:

  • 无JSON语法错误
  • 字段格式与测试消息一致,没有特殊字符导致解析失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:05:32