Большая полезная нагрузка (текстовые файлы) в запросе и ответе API API Gateway - PullRequest
0 голосов
/ 27 марта 2020

У меня есть случай использования, когда мой API должен быть доступен внешним клиентам через API-шлюз. Параметры запроса включают большой текстовый файл (~ 100 МБ) и некоторые другие параметры в полезной нагрузке. После некоторой обработки данных из файла я намереваюсь отправить обновленный файл в теле ответа.

Пожалуйста, помогите, как я могу решить этот мой вариант использования. Спасибо

Проблемы:

Обработка запроса API может превысить ограничение времени ожидания шлюза API в 30 секунд. Полезная нагрузка запроса и ответа превышает лимит полезной нагрузки в 10 МБ.

1 Ответ

2 голосов
/ 27 марта 2020

Скорее всего, вы захотите, чтобы это был асинхронный процесс, в котором вы:

  • создаете предварительно подписанные URL-адреса сообщений , где пользователи могут загружать свои текстовые файлы объемом 100 МБ напрямую на S3
    • При желании оповестите пользователя, сказав: «Спасибо! Вы будете уведомлены, когда ваш файл будет готов»
  • Пусть это событие S3 вызовет лямбда-функцию для обработки данных в файле, сохранить в другом месте на S3
  • Создать Предварительно подписанный URL в преобразованном текстовом файле
  • Предоставить этот URL пользователю для загрузки

Загрузка, преобразование и загрузка текстового файла размером ~ 100 МБ, вероятно, не является синхронным процессом, который вы хотели бы ожидать от пользователей.

...