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

На этой странице подробно описаны масштабируемые, основанные на использовании лимиты для Cloud Functions в соответствии с тарифным планом Blaze pay-as-you-go. Эти лимиты применяются к проектам 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 минуту. Зависит от выбранного региона. Этот лимит может быть больше в регионах с высокой пропускной способностью или меньше в недавно открытых регионах. Н/Д Да по проекту и региону
Макс. проектный ЦП Количество CPU, в милли vCPU, которое может использовать проект. Измеряется общей суммой запрошенных пользователем CPU по всем экземплярам функций за период в 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 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 CLI, действуют следующие типы ограничений по скорости и времени:

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

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