Я пытаюсь обернуть голову вокруг экземпляров Cloud Function и как они работают.
Я спрашиваю о примере функции HTTP, но я думаю, что концепция применима к любому виду функции.
- Допустим, у меня есть эта облачная функция, которая обрабатывает SSR для моего приложения, с именем
ssrApp
. - И давайте предположим, что для завершения каждого требуется
1 second
время получения запроса. - Когда облачная функция получает 1-й запрос, она запускает экземпляр, чтобы ответить на него.
ВОПРОС
Как этот экземпляр ведет себя при поступлении нескольких запросов?
От: https://cloud.google.com/functions/docs/concepts/exec
Каждый экземпляр функции обрабатывает только один одновременный запрос одновременно. Это означает, что пока ваш код обрабатывает один запрос, нет возможности направить второй запрос на тот же экземпляр. Таким образом, исходный запрос может использовать весь объем ресурсов (ЦП и память), который вы запрашивается.
Означает ли это, что в течение этого 1 second
, когда моя функция ssrApp
работает, если кто-то нажимает на URL моего приложения, гарантируется, что Cloud Function раскрутит другой экземпляр за этот второй запрос? Имеет ли значение, если функция выполняет только sync
вызовов или несколько async
вызовов при ее выполнении? Я имею в виду, может ли async
вызвать свободный экземпляр для параллельного ответа на другой запрос?