我有一组数据:id
、name
和。height
weight
我正在以 json 格式将此数据发送到 aws iot。从那里我需要更新发电机数据库中的各个列,因此我创建了 3 条规则来更新name
,height
并将权重保持id
为分区键。
但是当我发送消息时,只有一列得到更新。如果我禁用任何 2 条规则,则其余规则可以正常工作。因此,每次我更新时,列都会被覆盖。
如何更新传入消息中的所有三列?
我有一组数据:id
、name
和。height
weight
我正在以 json 格式将此数据发送到 aws iot。从那里我需要更新发电机数据库中的各个列,因此我创建了 3 条规则来更新name
,height
并将权重保持id
为分区键。
但是当我发送消息时,只有一列得到更新。如果我禁用任何 2 条规则,则其余规则可以正常工作。因此,每次我更新时,列都会被覆盖。
如何更新传入消息中的所有三列?
另一个答案:在您的规则中,改用“ dynamoDBv2 ”操作——“它允许您将全部或部分 MQTT 消息写入 DynamoDB 表。有效负载中的每个属性都写入 DynamoDB 数据库中的单独列。 ..”
dynamoDBv2 操作:将负载中的每个属性写入 DynamoDB 数据库中的单独列。
答案是:你不能用物联网网关规则本身来做到这一点。您只能通过规则将数据存储在单个列中(除了哈希和排序键)。
解决这个问题的一种方法是制定一个 lambda 规则,该规则调用例如一个 python 脚本,然后获取消息并将其存储在表中。另请参阅this other SO question。