Как бороться с лимитом 6 мегабайт в AWS лямбда-сервисах? - PullRequest
1 голос
/ 31 января 2020

У меня запущено трехуровневое приложение в AWS. Промежуточное программное обеспечение было написано в Python Flask и сохранено на Linux машине.

Однако они попросили меня перейти на AWS Лямбда-сервисы. Для функции возврата данных установлен предел в 6 МБ. Поскольку я имею дело с GEO Json, иногда необходимо вернуть до 15 м.

Несмотря на то, что лямбда-код AWS не содержит состояний, я мог бы предоставить какой-то способ вернуть данные, разделенные на части, но это проблематично c Я думаю, что будет необходимо генерировать всю карту снова и снова, пока я не смогу выполнить все данные.

Есть ли лучший способ справиться с этим? Я программирую на Python.

Ответы [ 2 ]

3 голосов
/ 31 января 2020

Я бы справился с этим, отправив данные на S3 и выполнив перенаправление или JSON ответ, который указывает на URL на S3 (с временным, устаревшим URL , если данные должны быть безопасными ). Если данные долгоживущие, вы можете просто оставить их там; в противном случае вы можете использовать правила жизненного цикла S3 , чтобы файлы автоматически удалялись примерно через 24 часа.

0 голосов
/ 04 февраля 2020

Если у вас также есть контроль над клиентом, который получает эти данные, вы можете отправить сжатый результат, который затем будет распакован на стороне клиента. Таким образом, вы также сможете отправить этот ответ размером 15 МБ, который может стать очень маленьким при сжатии.

Или вы можете отправить фрагмент всего ответа с токеном или чем-то, указывающим клиенту, что ответ не является полный. Затем клиент выполнит другой запрос с этим токеном, чтобы получить следующий фрагмент, и так далее, пока не останется больше фрагментов. На этом этапе клиент может объединить все фрагменты, чтобы получить полный ответ.

Говоря о пределе 6 МБ, я надеюсь, что в какой-то момент у нас будет возможность установить максимальный размер полезной нагрузки. поскольку 6 МБ подходит для большинства случаев, но не для ВСЕХ случаев

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