如何使用 IoT 规则将数据从 AWS IoT 发送到 AWS DynamoDB v2
How to send data from AWS IoT to AWS DynamoDB v2 using IoT Rules
我想将从 AWS IoT 接收到的各个列的各个数据值发送到 AWS DynamoDB。
我的设备发送此负载:
{
"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
}
}
}
}
我在我的 Shadow Link 此处收到此负载作为 Shadow 更新:
$aws/things/shadow/update
我创建了一个示例 DynamoDB Table 并将其与 AWS IoT 规则链接,这样每当数据传入上述主题时,它就会被 SQL 查询触发:
SELECT * FROM '$aws/things/shadow/update'
- 此数据反映在我的影子更新中
- 此数据未转发到 DynamoDB table
- 有什么问题吗?!
如有任何帮助,我们将不胜感激。谢谢
首先,启用 Cloudwatch Logs 应该可以帮助您调试此问题。
通常,这些类型的无提示故障表明您没有正确格式化数据以插入 DynamoDB。
要检查的事项:
- 您的 SELECT 语句将不起作用,因为它需要拉入您要插入的内容。在您的情况下,这将是 SELECT desired.* 或 SELECT reported.Item.*
- 主分区键必须是您拉入的键之一,否则您的 DynamoDB 插入将失败。您的主分区键是什么?确保在 SELECT 语句
的键列表中有它
- 确保主分区键的数据类型与您传入的类型匹配 - 例如,如果您的主分区键是 DeviceId,则它应该是字符串类型(而不是整数)
CloudWatch 日志将提供更详细的信息来帮助您。有关如何执行此操作的信息,请参阅 http://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html。
您还可以从 IoT 控制台启用它,方法是从左侧导航中选择“设置”(齿轮),然后在“日志记录”下更新设置。
对我来说,这个 post 使我得到了一个最终有效的结果,经过数小时的误导性信息:
我想将从 AWS IoT 接收到的各个列的各个数据值发送到 AWS DynamoDB。
我的设备发送此负载:
{
"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
}
}
}
}
我在我的 Shadow Link 此处收到此负载作为 Shadow 更新:
$aws/things/shadow/update
我创建了一个示例 DynamoDB Table 并将其与 AWS IoT 规则链接,这样每当数据传入上述主题时,它就会被 SQL 查询触发:
SELECT * FROM '$aws/things/shadow/update'
- 此数据反映在我的影子更新中
- 此数据未转发到 DynamoDB table
- 有什么问题吗?!
如有任何帮助,我们将不胜感激。谢谢
首先,启用 Cloudwatch Logs 应该可以帮助您调试此问题。
通常,这些类型的无提示故障表明您没有正确格式化数据以插入 DynamoDB。
要检查的事项:
- 您的 SELECT 语句将不起作用,因为它需要拉入您要插入的内容。在您的情况下,这将是 SELECT desired.* 或 SELECT reported.Item.*
- 主分区键必须是您拉入的键之一,否则您的 DynamoDB 插入将失败。您的主分区键是什么?确保在 SELECT 语句 的键列表中有它
- 确保主分区键的数据类型与您传入的类型匹配 - 例如,如果您的主分区键是 DeviceId,则它应该是字符串类型(而不是整数)
CloudWatch 日志将提供更详细的信息来帮助您。有关如何执行此操作的信息,请参阅 http://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html。
您还可以从 IoT 控制台启用它,方法是从左侧导航中选择“设置”(齿轮),然后在“日志记录”下更新设置。
对我来说,这个 post 使我得到了一个最终有效的结果,经过数小时的误导性信息: