Darshu Bc
Darshu Bc

Reputation: 546

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

I have set of data: id, name, height and weight.

I am sending this data to aws iot in json format. From there I need to update the respective columns in a dynamo db hence I have created 3 rules to update name, height and weight keeping id as partition key.

But when I send the message only one column is getting updated. If I disable any 2 rules then the remaining rule works fine. Therefore every time I update, columns are getting overwritten.

How can I update all three columns from the incoming message?

Upvotes: 2

Views: 2990

Answers (2)

BobK77
BobK77

Reputation: 101

Another answer: in your rule, use instead the "dynamoDBv2" action -- which "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 action: writes each attribute in the payload to a separate column in the DynamoDB database.

Upvotes: 3

ChrisWue
ChrisWue

Reputation: 19050

The answer is: You can't do this with the IoT gateway rules themselves. You can only store data in a single column through the rules (apart from the hash and sort key).

A way around this is to make a lambda rule which calls for example a python script which then takes the message and stores it in the table. See also this other SO question.

Upvotes: 2

Related Questions