Amazon dynamodb 字符串集的API网关和DynamoDB PutItem

Amazon dynamodb 字符串集的API网关和DynamoDB PutItem,amazon-dynamodb,Amazon Dynamodb,我似乎找不到如何通过API网关为DynamoDB中的StringSet正确调用PutItem。如果我像调用地图列表一样调用它,那么我会得到返回的对象。示例数据如下 { "eventId": "Lorem", "eventName": "Lorem", "companies": [ { "companyId": "Lorem", "companyName": "Lorem" } ],

我似乎找不到如何通过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将字符串数组转换为字符串集的正确方法是什么

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

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

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

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

你在使用javascript吗?我直接通过API网关中的主体模板来实现。我只是指定了application/json的一种格式。我最终选择了这种方式,并在Lambda中使用了JavaScript SDK。谢谢