如何使用IoT规则将数据从AWS IoT发送到AWS DynamoDB v2

问题描述:

我想将单个数据值发送到从AWS IoT收到的各个列到AWS DynamoDB。如何使用IoT规则将数据从AWS IoT发送到AWS DynamoDB v2

我的设备发送该有效载荷:

{ 
    "state": { 
    "desired": { 
     "DeviceId" : "Device101", 
     "DateTime" : now, 
     "Room1 Temperature" : m_t, 
     "Room2 Temperature": b_t 
     }, 
    "reported": { 
     "Item": { 
      "DeviceId" : "Device101", 
      "DateTime" : now, 
      "Room1 Temperature" : m_t, 
      "Room2 Temperature": b_t 
      } 
     } 
    } 
} 

我收到这个有效载荷的阴影更新我的影子链接在这里:

$ AWS /事/阴影/更新

我已经创建了一个Sample DynamoDB表并将其与AWS IoT Rule链接,以便每当数据传入上述主题时,都会由SQL Qu红霉素:

SELECT * FROM

  • 该数据反映在我的影子更新
  • 此数据不被转发到DynamoDB表 '$ AWS /事/阴影/更新'
  • 问题是什么?!

任何帮助,将不胜感激。谢谢。

首先,启用Cloudwatch日志应该有助于您调试此问题。

通常,这些类型的静默失败表示您没有正确格式化数据以插入到DynamoDB中。

检查事项:

  • 你的SELECT语句将无法正常工作,因为它需要在要插入的内容来拉。在你的情况下,这可能是SELECT desired。*或SELECT reported.Item。*
  • 主分区键必须是您拉入的键之一或DynamoDB插入失败。你的主分区密钥是什么?确保在SELECT语句的键列表中包含
  • 确保您的主分区键的数据类型与您传入的类型匹配 - 例如,如果您的主分区键是DeviceId,则它应该是一个字符串类型(例如,不是整数)

CloudWatch日志将提供更详细的信息以帮助您。有关如何执行此操作的信息,请参阅http://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html

您也可以通过从左侧导航中选择设置(齿轮)并在日志记录下更新设置,从物联网控制台启用它。

+0

好的,谢谢,我会研究它,让你知道:) –