Тайм-аут HTTP при выполнении длинного HTTP-запроса от Azure Функция - PullRequest
0 голосов
/ 15 февраля 2020

В настоящее время я пишу приложение Azure Function для создания больших PDF-файлов из HTML. У меня есть Azure очередь служебной шины, которая отправляется через веб-сайт, а затем сообщения очереди обрабатываются функцией Azure (Basi c Tier App Service Plan)

Чтобы сгенерировать PDF, Я делаю HTTP-запрос к Azure облачной службе из функции Azure, которая генерирует мне байтовый массив, для которого я пишу в Azure Blob Storage.

Иногда HTTP-запрос может занимать до 30 минут. Когда я делаю любой HTTP-запрос, который дольше 4 минут 30 секунд, я никогда не получаю ответ. Если мои предположения верны, то это из-за соединения между облачной службой и тайм-аутом функции Azure.

Кто-нибудь получил какие-либо предложения, которые позволили бы более длительные запросы HTTP, используя эту инфраструктуру?

1 Ответ

1 голос
/ 16 февраля 2020

Вероятно, вы превысили время ожидания на стороне облачного сервиса. Чтобы исправить это, установите idleTimeoutInMinutes на InputEndpoint (https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-configuration-and-management-faq#how -do-i-set-i-set-i-set-idle-timeout-for- azure -load-balancer ):

<Endpoints>
   <InputEndpoint name="Endpoint1" protocol="tcp" port="10100" idleTimeoutInMinutes="30" />
</Endpoints>

Однако это, вероятно, неправильное решение. Не следует проектировать систему, которая требует ответа от активного HTTP-соединения в течение 30 минут. Слишком много переменных, которые могут вызвать сбой соединения. Вам следует использовать асинхронную модель c, в которой вы вызываете облачную службу, чтобы запустить задание, которое будет возвращать идентификатор задания, а затем периодически вызывать облачную службу, чтобы проверить состояние задания. См. https://docs.microsoft.com/en-us/azure/architecture/patterns/async-request-reply для шаблона проектирования.

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