Я хочу отсортировать $ctx.result.items и ответить на sortedResult
Я не хочу вручную записывать Velocity Template Language для сортировки $ctx.result.items в Response Mapping. Есть ли лучший способ ответить на sortedResult в AWS AppSync?





Какой тип сортировки вы хотите сделать? Если он возрастает / убывает с помощью преобразователя DynamoDB, вы можете установить это в аргументе ScanIndexForward для этого в шаблоне запроса: https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html
(если вы нашли решение, надеюсь, это поможет кому-то другому)
Это зависит от того, как вы спроектировали GSI или LSI для своей таблицы DynamoDB.
Как указано здесь, «DynamoDB строит индекс неупорядоченный хеш на атрибуте первичного ключа хэша и индекс отсортированный диапазон на атрибуте первичного ключа диапазона».
Здесь хеш-индекс такой же, как ключ раздела, а индекс диапазона такой же, как ключ сортировки (старые и новые термины).
Аналогичный текст сформулирован здесь - «Все элементы со значением ключа раздела тем же хранятся вместе, в отсортированном порядке по значению ключа сортировки».
Поэтому, если вы добавили GSI или LSI в свою таблицу DynamoDB указанным выше способом (например, все ваши идентификаторы продуктов являются ключами хешей / разделов, а время создания - ключами диапазона / сортировки, и вам нужно отсортировать продукты по времени создания), вы можете использовать что-то аналогично пример, определенный на этой странице StackOverflow.