我的映射模板是:
{
"TableName": "Lists",
"Item": {
"listid": {
"S": "$context.requestId"
},
"title": {
"S": "$input.path('$.title')"
},
"places": {
"L": $input.path('$.places')
}
}
}
我遇到的错误是:
{"__type": "com.amazon.coral.service#SerializationException",
"Message": "Expected null"}
如果我将对象更改为" S"并传递到字符串中,则一切都很好,但是我无法正确通过列表。
这是我对API网关控制台的测试请求主体:
{
"title": "Title",
"places": ["place 1", "place 2"]
}
这是转换后的请求:
Endpoint request body after transformations: {
"TableName": "Lists",
"Item": {
"listid": {
"S": "test-invoke-request"
},
"title": {
"S": "Title"
},
"places": {
"L": ["place 1","place 2"]
}
}
}
我在这里找到了答案:http://docs.aws.amazon.com/amazondynamodb/latest/apireference/api_attributevalue.html
对于字符串列表,正确的属性值为" SS"。" L"保留用于属性值对象的列表。
因此,要使我的原始请求主体通过我必须重新格式化为:
{ "title": "Title2",
"places": [{"S": "place 1"}, {"S": "place 2"}]
}