如何使用aws iot规则引擎更新dynamodb的多列

How to update multiple columns of dynamo db using aws iot rules engine

我有一组数据:idnameheightweight

我正在以 json 格式将此数据发送到 aws iot。从那里我需要更新发电机数据库中的相应列因此我创建了 3 条规则来更新 nameheight 和权重保持 id 作为分区键。

但是当我发送消息时,只有一栏得到更新。如果我禁用任何 2 条规则,则其余规则可以正常工作。因此,每次我更新时,列都会被覆盖。

如何更新传入消息的所有三列?

答案是:您不能使用 IoT 网关规则本身来执行此操作。您只能通过规则将数据存储在单个列中(哈希和排序键除外)。

解决此问题的一种方法是制定一个 lambda 规则,该规则调用例如 python 脚本,然后接收消息并将其存储在 table 中。另见 this other SO question

另一个答案:在您的规则中,改用“dynamoDBv2”操作——"allows you to write all or part of an MQTT message to a DynamoDB table. Each attribute in the payload is written to a separate column in the DynamoDB database ..."

dynamoDBv2 操作:将负载中的每个属性写入 DynamoDB 数据库中的单独列。