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

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

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

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

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

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

  • Ограничения по времени

    Они влияют на продолжительность работы устройства.

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

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

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

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

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

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

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

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

Ограничения по времени

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

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

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

Ограничения сети

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

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

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

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

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

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

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

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

Квота Описание Предел Может быть увеличено Объем Версия продукта
Максимальное количество одновременных вызовов Максимальное количество одновременных вызовов одной функции
Пример: если обработка каждого события занимает 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 CLI, действуют следующие типы ограничений скорости и времени:

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

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