Ngrok не передает ответ на функцию Azure от localhost при многократном вызове - PullRequest
0 голосов
/ 08 февраля 2019

В настоящее время у нас есть функция Azure (режим потребления), которая отправляет HTTP-запросы API-интерфейсам, работающим на localhost.

Localhost API создается с использованием веб-API и работает на Windows 10.

AzureФункция имеет один статический экземпляр HttpClient, и мы повторно используем экземпляр HttpClient для всех вызовов.

public static class AzureFunctionApp
    {
        static HttpClient _httpClient = new HttpClient();

        [FunctionName("NameOfFunction")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log, CancellationToken cancellationToken)
        {
        //await _httpClient.GetAsync
                 // some business rules
                //await _httpClient.SendAsync
                 // some business rules
                //await _httpClient.GetAsync
                 // some business rules
                //await _httpClient.PostAsync

    }

Мы используем ngrok для предоставления API-интерфейсов localhost с использованием следующих параметров

ngrok http 55386 -host-header="localhost:55386" -region=au

В приведенной выше настройке

  • Функция Azure успешно завершает первый вызов API localhost
  • Функция Azure отправляет запрос на второй API localhost, но не получает ответ, приводяФункция Azure для тайм-аута.Если я поставлю точку останова в API локального хоста, я увижу, что ответ был возвращен успешно, но не получен функцией Azure.
  • Функция Azure в конечном итоге отключается

Ниже приведеныснимок экрана ngrok

  • до выполнения функции Azure

enter image description here

  • после выполнения функции Azure (разout)

enter image description here

Если я обновлю приложение AzureFunction для создания нового HttpClient для каждого запроса, выполнение функции Azure завершится успешно.

Ниже приведены снимки экрана ngrok

  • Перед выполнением функции Azure

enter image description here

  • После выполнения функции Azure

enter image description here

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

Согласно приведенному ниже вопросу

Ngrok не передает мой запрос на локальный хост

Я также пыталсяпредоставляя порт HTTP для приложения-функции, но я все еще получаю тайм-аут после первого вызова API localhost.

Угадай вопрос: это тот случай, когда нам приходится переходить на более высокий план (Basic / pro)?или я что-то здесь упускаю?

Заранее спасибо.

...