我已经能够使用AWS文档将mqtt消息插入表中的单个列中。我希望能够更新(而不是插入)表中的多个列。我在IoT规则中使用了DynamoDbv2操作,并将IAM角色更改为UpdateItem,但是没有任何反应。
有没有办法查看这些错误发生的位置/时间? 我是否应该创建Lambda函数来处理呢?有这个例子吗? 谢谢。
答案 0 :(得分:0)
您可以使用DynamoDbV2规则操作来更新DynamodDB表中的多个属性(如果需要,还可以更新列)。您提供给“物联网规则”的角色需要在相关表格上允许dynamodb:PutItem
。当然,角色需要在其信任策略(在某些地方也称为承担角色策略文档)中具有IoT服务。
要帮助解决任何问题,请打开IoT日志记录并将级别设置为“调试”。然后,您可以在AWS Cloudwatch日志中查看任何错误。
https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html
答案 1 :(得分:0)
首先请记住,DynamoDbV2在内部使用PutItem
,因此您不仅无法更新属性,而且整个对象将被覆盖。
如果要更新项目,则需要实现Lambda函数并手动实现数据更新。
对于IAM角色,您的信任关系应包含:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "iot.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}