用于字符串集的API网关和DynamoDB PutItem

时间:2017-06-11 22:55:57

标签: amazon-dynamodb

我似乎无法通过API网关找到如何在DynamoDB中为StringSet正确调用PutItem。如果我像对待地图列表一样调用它,那么我会返回对象。示例数据如下。

{
    "eventId": "Lorem",
    "eventName": "Lorem",
    "companies": [
        {
            "companyId": "Lorem",
            "companyName": "Lorem"
        }
    ],
    "eventTags": [
        "Lorem",
        "Lorem"
    ]
}

我的示例模板呼吁公司:

"companies" : {
     "L": [
          #foreach($elem in $inputRoot.companies) {
            "M": {
              "companyId": {
                "S": "$elem.companyId"
              },
              "companyName": {
                "S": "$elem.companyName"
              }
            }
        } #if($foreach.hasNext),#end
        #end
     ]
}

我试图用列出的字符串集来调用它,但是它仍然出错并且告诉我"结构或地图的开始发现了哪里没有预期"或者序列化失败。

"eventTags" : {
      "SS": [
        #foreach($elem in $inputRoot.eventTags) {
           "S":"$elem"
        } #if($foreach.hasNext),#end
        #end
      ]
    }

调用PutItem将字符串数组转换为字符串集的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您使用的是JavaScript AWS SDK,则可以使用文档客户端API(docClient.createSet)来存储SET数据类型。

docClient.createSet - 将数组转换为SET数据类型

var docClient = new AWS.DynamoDB.DocumentClient();   

     var params = {
    TableName:table,
    Item:{
        "yearkey": year,
        "title": title       
        "product" : docClient.createSet(['milk','veg'])        
    }
};