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

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

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

Квоты для Firebase охватывают 4 области:

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

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

  • Сроки

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

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

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

  • Сетевые ограничения

    Они влияют на ограничения исходящих подключений и экземпляров.

Различные типы лимитов более подробно описаны ниже. Различия между ограничениями для Firebase (1-го поколения) и Firebase (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 ГБ Нет за функцию
Макс. память проекта Объем памяти в By, который может использовать проект. Он измеряется общей суммой запрошенной пользователем памяти для экземпляров функции за период в 1 минуту. Зависит от выбранного региона. Этот лимит может быть больше в регионах с высокой пропускной способностью или ниже в недавно открытых регионах. Н/Д Да за проект и регион
Максимальный процессор проекта Количество ЦП в милли виртуальных ЦП, которое может использовать проект. Он измеряется общей суммой запрошенной пользователем загрузки ЦП для экземпляров функции за период в 1 минуту. Зависит от выбранного региона. Этот лимит может быть больше в регионах с высокой пропускной способностью или ниже в недавно открытых регионах. Н/Д Да за проект и регион

Сроки

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

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

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

Сетевые ограничения

Информацию о сетевых запросах Firebase (2-го поколения) и ограничениях пропускной способности см. в разделе Ограничения сети .

К Firebase (1-го поколения) применяются следующие сетевые ограничения:

  • Исходящих подключений в секунду на инстанс: 500 (нельзя увеличить)
  • Исходящие разрешения DNS в секунду на экземпляр: 100 (нельзя увеличить)

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

Firebase , вызываемый 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 , выберите квоты, которые вы хотите изменить, нажмите «Изменить квоты» , введите свою информацию о пользователе, если будет предложено, и введите новый предел квоты для каждой выбранной вами квоты.

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

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

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

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