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

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

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

Квоты для Cloud Functions охватывают четыре области:

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

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

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

    От этого зависит, как долго могут выполняться задачи.

  • Ограничения частоты запросов

    Они влияют на частоту вызовов API Cloud Functions для управления функциями.

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

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

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

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

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

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

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

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

Ограничения частоты запросов

Квота Описание Limit (первое поколение) Limit (второе поколение) Можно увеличить Область действия
Вызовы API (READ) Вызовы для описания или перечисления функций через Cloud Functions API. 5000 за 100 секунд 1200 за 60 секунд Только для первого поколения на проект (первое поколение)
на регион (второе поколение)
Вызовы API (WRITE) Вызовы для развертывания или удаления функций через Cloud Functions API. 80 за 100 секунд 60 за 60 секунд Нет 1 на проект (первое поколение)
на регион (второе поколение)
Вызовы API (CALL) Вызовы API "call" 16 на 100 секунд Н/Д Нет 2 на проект

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

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

Для Cloud Functions (первое поколение) действуют следующие сетевые ограничения:

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

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

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

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

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

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

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

Что происходит при достижении квоты

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

Чтобы увеличить квоты, установленные по умолчанию, перейдите на страницу Cloud Functions Quotas (Квоты), выберите нужные квоты, нажмите Edit quotas (Изменить квоты), при необходимости укажите информацию о пользователе и введите новые значения для каждой выбранной квоты.

Ограничения квот для развертывания интерфейса командной строки Firebase

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

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

См. также справочное руководство по интерфейсу командной строки Firebase.