如何使用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。
您也可以通过从左侧导航中选择设置(齿轮)并在日志记录下更新设置,从物联网控制台启用它。
好的,谢谢,我会研究它,让你知道:) –