2017-06-11 3 views
0

API Gatewayを介してDynamoDBのStringSetに対してPutItemを正しく呼び出す方法が見つからないようです。マップのリストのように呼び出すと、オブジェクトが返されます。データの例は以下のとおりです。私が記載されている文字セットとそれを呼び出すようにしようとしましたが、それでも、それはエラーが出および構造のスタートかが見つかっマップ」と言われますAPIゲートウェイとStringo用のDynamoDB PutItem

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

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

や企業のための私の例のテンプレート呼び出し期待していないところで "またはシリアル化が失敗したことを示します。

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

文字列の配列を文字列セットに変換するためにPutItemを呼び出す適切な方法は何ですか?

+0

に配列を変換し、あなたはJavaScriptを使用していますか? – notionquest

+0

私はこれをAPIゲートウェイの本体テンプレートを通して直接行っています。私はapplication/jsonの形式を指定しています。 – user3342237

答えて

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'])   
    } 
}; 
+0

私はこのルートに行き、代わりにラムダのJavaScript SDKを使用しました。ありがとう! – user3342237

関連する問題