Получить все элементы в DynamoDB с помощью шаблона сопоставления API Gateway

#amazon-web-services #amazon-dynamodb #aws-api-gateway #velocity

#amazon-веб-сервисы #amazon-dynamodb #aws-api-gateway #скорость

Вопрос:

Есть ли простой способ получить все элементы из таблицы DynamoDB, используя шаблон сопоставления в конечной точке API Gateway? Обычно я использую лямбда-выражение для обработки данных перед их возвратом, но это такая простая задача, что лямбда-выражение кажется излишним.

У меня есть таблица, содержащая данные в следующем формате:

 roleAttributeName    roleHierarchyLevel    roleIsActive    roleName
"admin"                99                    true            "Admin"
"director"             90                    true            "Director"
"areaManager"          80                    false           "Area Manager"
  

Я доволен получением данных, не имеет значения представление, поскольку позже я могу преобразовать его дальше в своем коде.

Я искал, но во всех руководствах объясняется, как получить определенные фрагменты данных с помощью запросов и параметров, таких как roles/{roleAttributeName} но я просто хочу нажать roles/ и получить все элементы.

Ответ №1:

Все, что вам нужно сделать, это

  1. создайте ресурс (без фигурных скобок, поскольку нам не нужен конкретный элемент)
  2. создайте метод получения, используя сканирование вместо запроса в действии при настройке запроса на интеграцию.

Конфигурации следующим образом: введите описание изображения здесь

  1. теперь попробуйте протестировать … вы должны получить ответ.
  2. чтобы опробовать его на postman, сначала разверните API, а затем используйте предоставленную ссылку в postman, за которой следует имя вашего ресурса.

Комментарии:

1. Разве мы не должны использовать сопоставление для этого? Я получаю эту ошибку для приведенного выше ответа: com.amazon.coral.service#SerializationException

Ответ №2:

API Gateway позволяет использовать DynamoDB в качестве прокси-сервера в качестве сервиса. Здесь у вас есть интересное руководство о том, как это сделать (вы можете игнорировать часть, связанную с индексом, чтобы заставить его работать).

Чтобы извлечь все элементы из таблицы, вы можете использовать сканирование в качестве действия в API Gateway. Имейте в виду, что DynamoDB ограничивает размер запроса 1 МБ как для действий сканирования, так и для действий с запросом. Вы также можете ограничить свой собственный запрос до его автоматического выполнения с помощью параметра Limit.

Ссылка на сканирование AWS DynamoDB