У меня проблемы с хранением массивов в DynamoDB на PutItem с AppSync, и это сводит меня с ума: P
Проблема в том, что массив, который я передаю из GraphQl, исчезает при запуске $util.dynamodb.toMapValuesJson. Что я делаю неправильно?
Я действительно застрял в этом и был бы очень признателен за любую помощь, которую я могу получить!
Это шаблон:
#set($failing_list = [ "foo", 123, { "bar" : "baz" } ])
{
"version" : "2017-02-28",
"operation" : "PutItem",
"key": {
"userId": { "S": "$ctx.args.input.email" },
"createdAt": { "N": "$util.time.nowEpochMilliSeconds()" }
},
"data" : {
"test": $util.dynamodb.toMapValuesJson({
"working_list": [ "foo", 123, { "bar" : "baz" } ],
"failing_list": $failing_list
})
}
}
Вот результат:
{
version: '2017-02-28',
operation: 'PutItem',
key: {
userId: { S: 'xxxxxxxxxxxx' },
createdAt: { N: '1531521284789' }
},
data: {
test: {
working_list: {
L: [ { S: 'foo' }, { N: '123' }, { M: { bar: { S: 'baz' } } } ]
},
failing_list: {
M: { L: { L: [ { M: { map: { M: {} } } }, { M: { map: { M: {} } } }, { M: { map: { M: {} } } } ] } }
}
}
}
}
Это тоже не работает. Я изменил вопрос, чтобы сузить круг вопросов. Как видите, он работает, когда я помещаю массив непосредственно в json, но он не работает, если я на него ссылаюсь ...
Впрочем, с хаком $util.dynamodb.toMapValuesJson($util.parseJson($util.toJson($ctx.args.input))) все работает нормально, что меня раздражает, потому что оно некрасиво.





Вы пробовали использовать
$util.dynamodb.toListJson()из списка доп. Помощники DynamoDB?