如何使用aws iot规则引擎更新dynamodb的多列
How to update multiple columns of dynamo db using aws iot rules engine
我有一组数据:id
、name
、height
和 weight
。
我正在以 json 格式将此数据发送到 aws iot。从那里我需要更新发电机数据库中的相应列因此我创建了 3 条规则来更新 name
、height
和权重保持 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 数据库中的单独列。
我有一组数据:id
、name
、height
和 weight
。
我正在以 json 格式将此数据发送到 aws iot。从那里我需要更新发电机数据库中的相应列因此我创建了 3 条规则来更新 name
、height
和权重保持 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 数据库中的单独列。