Azure Function App запускает несколько экземпляров одновременно? - PullRequest
1 голос
/ 19 марта 2020

Если у меня есть приложение Function, подобное этому

   public static class Function1
    {
        private static readonly HttpClient httpClient = new HttpClient();

        [FunctionName("SomeRandomFunction")]
        public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
        {
            ulong i = 0;
            Thread.Sleep(10000);
            return (ActionResult)new OkObjectResult($"Hello thread Finished.");
        }
}

Создаются ли разные экземпляры функции, если разные, например, мобильные устройства, запускают функцию одновременно?

Я сделал вывод из этой цитаты"Когда вы используете Премиум-план, экземпляры хоста Azure Функции добавляются и удаляются в зависимости от количества входящих событий, как План потребления ». Я на плане S1.

Однако когда я тестировал thread.sleep в функции "SomeRandomFunction", как описано выше, с двумя вызовами этой же функции из двух разных частных браузеров windows, второй вызов начинается только после завершения первого. Почему это происходит, если возможно создать несколько экземпляров одного и того же приложения функции?

Или требуется многопоточная реализация для одновременного запуска нескольких экземпляров?

Спасибо

1 Ответ

1 голос
/ 19 марта 2020

Разные экземпляры функции создаются, если разные, например, мобильные устройства запускают функцию одновременно?

Да. Из документов:

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

Azure Масштаб функций и хостинг

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