Функции Firebase cloud — что происходит с несколькими HTTP-триггерами одновременно

#node.js #firebase #google-cloud-functions

#node.js #firebase #google-cloud-функции

Вопрос:

У меня есть облачная функция firebase, которая является конечной точкой для внешнего API, и она обрабатывает запрос POST.

Этот внешний API ОТПРАВЛЯЕТ данные в конечную точку моей облачной функции через случайные промежутки времени (эта облачная функция получает запрос POST в зависимости от того, когда результат возвращается из этого внешнего API, и их может быть сразу несколько, и это непредсказуемо)

 exports.handleResults = functions.https.onRequest((req, res) => {
  if (req.method === 'POST') {
    // run code here that handles the POST payload
  }
})
  

Что происходит, когда одновременно поступает более одного POST-запроса?

Есть ли очередь? Завершает ли он первый запрос перед переходом к следующему?

Или, если во время выполнения функции поступает другой запрос, блокируется ли он / игнорируется ли запрос до тех пор, пока функция не будет выполнена?

Ответ №1:

Облачные функции автоматически увеличат масштаб серверных экземпляров, выполняющих ваши функции, когда определят, что требуется больше емкости. Эти экземпляры будут запускать вашу функцию одновременно. Экземпляры будут уменьшены, когда они больше не понадобятся. Точное поведение не задокументировано — его следует рассматривать как деталь реализации, которая может измениться со временем.

Чтобы узнать больше об этом, посмотрите мое видео о масштабировании и изоляции облачных функций.

Комментарии:

1. Это очень, очень полезная информация. Если это так, это позволит мне написать одну функцию / конечную точку вместо написания отдельной конечной точки для каждой отдельной службы. Я протестирую это завтра. Спасибо за понимание!

2. Завтра я собираюсь запустить облачную функцию с тремя одновременными публикациями, в то же время я собираюсь запустить временную корзину запросов, чтобы получить то же самое. Мне любопытно, что эти два собираются сравнить по задержке.