Время ожидания ответа от CloudFront> 60 - PullRequest
0 голосов
/ 13 марта 2020

У меня CloudFront, обслуживающий мои Angular страницы, и Elasti c Beanstalk, работающий на сервере nodejs, который обрабатывает вызовы API.

В частности, один вызов занимает много времени. Он читает файлы, которые хранятся в плоской структуре, помещает их в файловую структуру, затем архивирует их и возвращает пользователю. Большинство этих файлов имеют размер> 100 МБ, поэтому на это требуется время. Я установил время отклика источника CloudFront на 60 (что говорит о максимуме), и данные, с которыми я работаю, будут работать так долго, но мы только начинаем, и я знаю, что через несколько секунд будут не будет достаточно длинным.

CloudFront, кажется, делает 3 попытки (исходная плюс 2 повторные попытки), так что это будет в общей сложности 3 минуты, но когда придет первая повторная попытка, процесс не завершится. Я даже вставил хак, который проверяет, был ли процесс уже запущен в последующих вызовах, но он все равно зависает и возвращает 504.

Мой вопрос: есть ли способ заставить CloudFront ждать дольше 60 секунд или я могу периодически возвращать что-то, что говорит, что я все еще работаю, и сбрасывать время ожидания? Все, что я пробовал до сих пор, не работает.

1 Ответ

0 голосов
/ 13 марта 2020

Кажется нормальным трендом для меня. После поиска везде в течение дня или двух я отправляю вопрос, и вскоре после этого я нахожу решение. Вот что я нашел:

Вы можете сделать запрос на увеличение времени ожидания ответа CloudFront (см. здесь ). Не уверен, почему я не нашел эту страницу раньше. Тем не менее проблема заключается в том, что если бы я увеличил его и сохранил его таким, каким он был у меня, это означало бы, что таймаут для всех запросов к моему серверу API был бы таким высоким значением, и только этот один запрос нуждается в более высоком пределе (по крайней мере, на данный момент). ). Итак, я создал новое происхождение и поведение, которое относится только к этому одному вызову API и может установить ограничение выше и оставить предел ниже для всех остальных вызовов API.

По крайней мере, это теория. Мое тестирование подтверждает это, но я не слышал, был ли удовлетворен мой запрос на увеличение лимита.

...