#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:
Все, что вам нужно сделать, это
- создайте ресурс (без фигурных скобок, поскольку нам не нужен конкретный элемент)
- создайте метод получения, используя сканирование вместо запроса в действии при настройке запроса на интеграцию.
Конфигурации следующим образом: введите описание изображения здесь
- теперь попробуйте протестировать … вы должны получить ответ.
- чтобы опробовать его на postman, сначала разверните API, а затем используйте предоставленную ссылку в postman, за которой следует имя вашего ресурса.
Комментарии:
1. Разве мы не должны использовать сопоставление для этого? Я получаю эту ошибку для приведенного выше ответа: com.amazon.coral.service#SerializationException
Ответ №2:
API Gateway позволяет использовать DynamoDB в качестве прокси-сервера в качестве сервиса. Здесь у вас есть интересное руководство о том, как это сделать (вы можете игнорировать часть, связанную с индексом, чтобы заставить его работать).
Чтобы извлечь все элементы из таблицы, вы можете использовать сканирование в качестве действия в API Gateway. Имейте в виду, что DynamoDB ограничивает размер запроса 1 МБ как для действий сканирования, так и для действий с запросом. Вы также можете ограничить свой собственный запрос до его автоматического выполнения с помощью параметра Limit.