Квоты и лимиты

На этой странице подробно описаны масштабируемые ограничения на использование облачных функций в соответствии с тарифным планом Blaze с оплатой по мере использования. Эти ограничения применяются к проектам Firebase, которые развертывают функции в среде выполнения Node.js 10.

План Blaze обеспечивает бесплатное большое количество вызовов, вычислительное время и интернет-трафик. Однако при развертывании функций взимается небольшая плата за пространство хранения, используемое для контейнера функции. Дополнительную информацию можно найти в FAQ по Firebase.

Квоты для функций Google Cloud охватывают 3 области:

  • Ограничения ресурсов

    Они влияют на общий объем ресурсов, которые могут потреблять ваши функции.

  • Сроки

    Это влияет на то, как долго все может работать.

  • Ограничения ставок

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

Различные типы лимитов более подробно описаны ниже. Различия между ограничениями для облачных функций (1-го поколения) и облачных функций (2-го поколения) указаны там, где это применимо.

Ограничения ресурсов

Ограничения ресурсов влияют на общий объем ресурсов, которые могут потреблять ваши функции. Региональный масштаб указан для каждого проекта, и каждый проект имеет свои собственные ограничения.

Квота Описание Лимит (1-го поколения) Лимит (2-го поколения) Может быть увеличено Объем
Количество функций Общее количество функций, которые можно развернуть на регион 1000 1000 минус количество развернутых сервисов Cloud Run. Нет по региону
Максимальный размер развертывания Максимальный размер развертывания одной функции 100 МБ (сжатый) для исходников.
500 МБ (без сжатия) для исходников и модулей.
Н/Д Нет за функцию
Максимальный размер несжатого HTTP-запроса Данные отправляются в функции HTTP в HTTP-запросе. 10 МБ 32 МБ Нет за вызов
Максимальный размер несжатого ответа HTTP Данные, отправленные из функций HTTP в ответе HTTP 10 МБ 10 МБ для потоковой передачи ответов.
32 МБ для ответов, не связанных с потоковой передачей.
Нет за вызов
Максимальный размер события для функций, управляемых событиями Данные, отправляемые в событиях фоновым функциям 10 МБ 512 КБ для событий Eventarc.
10 МБ для устаревших событий.
Нет за событие
Максимальная функциональная память Объем памяти, который может использовать каждый экземпляр функции 8 ГБ 32 ГБ Нет за функцию

Сроки

Квота Описание Лимит (1-го поколения) Лимит (2-го поколения) Может быть увеличено Объем
Максимальная продолжительность функции Максимальное время, в течение которого функция может выполняться до принудительного завершения. 540 секунд 60 минут для функций HTTP.
9 минут для функций, управляемых событиями.
Нет за вызов

Ограничения ставок

Квота Описание Лимит (1-го поколения) Лимит (2-го поколения) Может быть увеличено Объем
Вызовы API (ЧТЕНИЕ) Вызовы для описания или перечисления функций через API облачных функций. 5000 за 100 секунд 1200 за 60 секунд Только для 1-го поколения за проект (1-го поколения)
за регион (2-е поколение)
Вызовы API (WRITE) Вызовы для развертывания или удаления функций через API облачных функций. 80 за 100 секунд 60 за 60 секунд1 за проект (1-го поколения)
за регион (2-е поколение)
Вызовы API (CALL) Вызовы API «вызова» 16 за 100 секунд Н/Д2 за проект

Масштабируемость

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

  • Количество времени, необходимое для завершения выполнения функции (краткосрочные функции обычно масштабируются для обработки большего количества одновременных запросов).
  • Время, необходимое функции для инициализации при холодном запуске .
  • Частота ошибок вашей функции.
  • Переходные факторы, такие как региональная нагрузка и мощность центра обработки данных.

Фоновые функции имеют дополнительные ограничения, как описано ниже. Эти ограничения не применяются к функциям HTTP 1-го поколения.

Дополнительные квоты для фоновых функций

Квота Описание Лимит Может быть увеличено Объем Версия продукта
Максимальное количество одновременных вызовов Максимальное количество одновременных вызовов одной функции
Пример: если обработка каждого события занимает 100 секунд, частота вызовов будет ограничена в среднем 30 вызовами в секунду.
3000 Да за функцию только 1-го поколения
Максимальная частота вызовов Максимальная частота событий, обрабатываемых одной функцией
Пример: если обработка события занимает 100 мс, частота вызовов будет ограничена до 1000 в секунду, даже если в среднем параллельно обрабатывается только 100 запросов.
1000 в секунду Нет за функцию только 1-го поколения
Максимальный размер данных одновременных событий Максимальный общий размер входящих событий для одновременных вызовов одной функции
Пример: если события имеют размер 1 МБ и их обработка занимает 10 секунд, средняя скорость составит 1 событие в секунду, поскольку 11-е событие не будет обработано, пока не завершится обработка одного из первых 10 событий.
10 МБ Нет за функцию 1-го поколения и 2-го поколения
Максимальная пропускная способность входящих событий Максимальная пропускная способность входящих событий для одной функции
Пример: если события имеют размер 1 МБ, то частота вызовов может составлять максимум 10 в секунду, даже если функции завершаются в течение 100 мс.
10 МБ в секунду Нет за функцию 1-го поколения и 2-го поколения

Когда вы достигнете предела квоты

Когда функция использует весь выделенный ресурс, ресурс становится недоступным до тех пор, пока квота не будет обновлена ​​или увеличена. Это может означать, что ваша функция и все другие функции в том же проекте до этого момента не будут работать. Функция возвращает код ошибки HTTP 500, когда квота одного из ресурсов превышает квоту и функция не может быть выполнена.

Чтобы увеличить квоты сверх значений по умолчанию, перечисленных здесь, перейдите на страницу квот облачных функций , выберите квоты, которые вы хотите изменить, нажмите «РЕДАКТИРОВАТЬ КВОТЫ» , введите свою информацию о пользователе, если будет предложено, и введите новый предел квоты для каждой выбранной вами квоты.

Ограничения квот для развертывания Firebase CLI

Для каждой функции, которую развертывает интерфейс командной строки Firebase, затрагиваются следующие типы ограничений скорости и времени:

  • Вызовы API (READ) — 1 вызов на одно развертывание, независимо от количества функций.
    • Лимит: 5000 за 100 секунд.
  • Вызовы API (WRITE) — 1 вызов на функцию
    • Лимит: 80 за 100 секунд.

См. также справочник по Firebase CLI .