Вставьте карту в DynamoDB - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь вставить данные карты в таблицу DynamoDB с помощью API Gateway. Вот моя полезная нагрузка:

{
"TableName":"OrderDB",
"Item":{
    "_id": {"S":"04FA887FP2S5R"},
    "_rev": {"S":"9-12e098e2490e1b7c9782597226689403"},
    "_merchantId":{"S":"AXN3EKXT0SJ61"},
    "doc":{"M":{"something":"storedHere"} }
}

И мой шаблон сопоставления тела в API Gateway:

{ 
  "TableName": "$input.path('$.TableName')",
  "Item": $input.json('$.Item')
}

Все работает как положено, если я удаляю элемент do c из полезной нагрузки. При попытке опубликовать с картой я получаю следующую ошибку:

{
  "__type": "com.amazon.coral.service#SerializationException",
  "Message": "Unexpected value type in payload"
}

Все примеры, которые я вижу, предлагают использовать объект сопоставления документов DynamoDB, но я не думаю, что это возможно для меня, потому что я Я использую API-шлюз для подключения напрямую к DynamoDB. Можно ли вставить карту таким образом?

1 Ответ

0 голосов
/ 28 января 2020

Ваша запись на карте нуждается в том же формате, что и остальные элементы, поэтому вместо "doc":{"M":{"something":"storedHere"} } она должна быть "doc":{"M":{"something":"S": "storedHere"} }

...