Можно ли использовать содержимое SELECT из объекта S3 с API Gateway? - PullRequest
0 голосов
/ 18 декабря 2018

Моя цель - использовать S3 в AWS для хранения CSV-файлов и API-шлюза для запроса этих объектов и в идеале выбирать строки и столбцы из CSV-файлов и возвращать их в моем веб-приложении.

В AWSСуществует метод выбора контента из объектов S3.Он действует как фильтр для файла CSV, например, чтобы возвращать только определенные столбцы.Это можно записать на SQL, см. Здесь: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html

Существует также способ использовать API-шлюз в качестве прокси-сервера для S3 для создания API в корзине, см. Здесь: https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html

Можно ли объединить эти методы, чтобы я мог сопоставить запросы API-шлюза непосредственно с контентом SQL SELECT из запроса объекта S3 или мне нужно использовать функцию Lambda в середине или какой-либо другой метод?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Чтобы запросить определенную часть файла, вы можете сделать это самостоятельно или воспользоваться одной из управляемых служб AWS S3 Выберите или Афина .Разница между ними проста: S3 Выберите один файл, Athena может выполнить запрос для целого сегмента.

В зависимости от ситуации, вы можете использовать один или другой, вам придется продумать необходимую производительностьи допустимые затраты.

В любом случае вы не можете просто подключить API-шлюз непосредственно к одному из этих сервисов, вам нужно промежуточное программное обеспечение, обрабатывающее запросы.

Тем не менее, я должен упомянуть, что это возможнонапрямую используйте S3 Select или Athena, минуя API Gateway.Если вы сделаете это, вы должны быть очень осторожны в отношении прав, связанных с используемыми ключами доступа.Вы можете создать в IAM определенный доступ (очень узкий) к S3, а затем использовать SDK для непосредственной обработки ваших запросов со стороны клиента.У вас больше проблем с безопасностью, но вы избегаете использования API-шлюза и Lambda.

0 голосов
/ 18 декабря 2018

Прокси-сервер S3 позволяет вам получать доступ к файлам только в том виде, в котором они документированы.

Для вашей цели вам нужен объект в середине, который будет выполнять дополнительную бизнес-логику для вас.

Я бы порекомендовал лямбду.

Итак, вы делаете:

api-gateway-> lambda-> s3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...