将JSON数据保存到DynamoDB

将JSON数据保存到DynamoDB,json,amazon-web-services,amazon-dynamodb,aws-iot,Json,Amazon Web Services,Amazon Dynamodb,Aws Iot,我是AWS方面的新手,正在从事一个AWS物联网项目,在该项目中,所有设备都会更新状态并向AWS物联网发送json。有一条规则可以将数据保存到dynamodb。我在dynamodb中创建了一个表。 我正在向AWS发送以下数据 { "state": { "reported": { "color": "Blue", "mac":"123:123" } } } 但在Dynamodb上,它保存了三项,第一项用于状态,另一项用于当前状态,另一项用于元数据。 我只想保存即将进入状

我是AWS方面的新手,正在从事一个AWS物联网项目,在该项目中,所有设备都会更新状态并向AWS物联网发送json。有一条规则可以将数据保存到dynamodb。我在dynamodb中创建了一个表。 我正在向AWS发送以下数据

{
  "state": {
  "reported": {
      "color": "Blue",
 "mac":"123:123"
  }
 }
}
但在Dynamodb上,它保存了三项,第一项用于状态,另一项用于当前状态,另一项用于元数据。
我只想保存即将进入状态的数据。我是否需要为此编写任何条件。

与其创建直接写入DynamoDB的规则(IMHO认为这不是一个好做法),不如让该规则触发Lambda函数,然后该函数处理有效负载,甚至可能会执行一些错误检查并写入DynamoDB

我不相信有任何方法可以配置如何将数据映射到DynamoDB,因此需要类似lambda的东西来映射它


从长远来看,如果您需要更改架构,甚至更改数据库,您可以更改lambda以执行其他操作。

您希望如何将其保存在DynamoDB上?现在,我有三个项目保存在db中,一个以状态开头,另一个以当前状态开头,第三个以元数据开头。我只想要在db中具有状态存储的有效负载。您能解释一下您需要的表结构吗?我正在发送如上所述的mqtt数据,在db端我得到了三项,它们是1。{key:things,payload:{state:{reported:{color:Blue,mac:123:123}}},timestamp:1467700865704}第二个元素是2。{key:things,payload:{metadata:{reported:{color:{timestamp:1467700865},mac:{timestamp:1467700865}}},state:{reported:{color:Blue,mac:123:123},timestamp:1467700865,version:1},timestamp:1467700865720}直接写入DynamoDB是最佳做法,也是设计无服务器可扩展时唯一的做法。API网关支持映射数据。@sudosoul您读过OP吗?这是一个物联网问题。不是API网关。