Я использую функцию конвейера AWS AppSync.В моем шаблоне сопоставления запросов я хочу выполнить распределение на основе некоторого условия.
Я задаю распределение переменных.Распределение переменных, имеющее свойства с пустым массивом.
Пример:
request.vtl
1: Первоначально я настраиваю распределение переменных
#set($distribution={
"NotAnswered": [],
"NeedsWork": [],
"AlmostThere": [],
"Mastered": []
})
2: Обработка и присвоение рассылки.
ПРИМЕЧАНИЕ. Если нет элементов, которые просто возвращают распределение шага 1.
#foreach($itemScore in $itemScores)
#if($itemScore.score == 100)
$distribution.Mastered.add($itemScore.itemId)
#elseif($itemScore.score >= 80)
$distribution.AlmostThere.add($itemScore.itemId)
#else
$distribution.NeedsWork.add($itemScore.itemId)
#end
#end
3: $ util.toJson ($ distribution)
В моем шаблоне отображения ответов, Я пытаюсь вернуть требуемый формат.
response.vtl
4: вернуть результат
#set($metadata={})
#set($distribution = {})
$util.qr($distribution.put('notAnswered', $result.NotAnswered.size()))
$util.qr($distribution.put('NeedsWork', $result.NeedsWork.size()))
$util.qr($distribution.put('NeedsWork', $result.NeedsWork.size()))
$util.qr($distribution.put('Mastered', $result.Mastered.size()))
$util.qr($metadata.put('distribution', $distribution))
$util.qr($term.put('metadata', $metadata))
Получение сообщения об ошибке: «Неподдерживаемый элемент»$ [NotAnslied] '. "
Спасибо!