На этой странице описаны масштабируемые лимиты на использование для 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 МБ для прошлых событий. |
Нет | на событие |
| Память функции Max | Объем памяти, который может использовать каждый экземпляр функции | 8 ГБ | 32 ГиБ | Нет | за функцию |
| Максимальный объем памяти проекта | Объем памяти в байтах, который может использовать проект. Он рассчитывается как сумма памяти, запрошенной пользователем для экземпляров функций, за период в одну минуту. | Зависит от выбранного региона. В регионах с высокой пропускной способностью лимит может быть выше, а в недавно открытых регионах – ниже. | Н/Д | Да | на проект и регион |
| Максимальное использование ЦП проектом | Объем ЦП в милливиртуальных ЦП, который может использовать проект. Он рассчитывается как сумма запросов ЦП от пользователей для всех экземпляров функций за одну минуту. | Зависит от выбранного региона. В регионах с высокой пропускной способностью лимит может быть выше, а в недавно открытых регионах – ниже. | Н/Д | Да | на проект и регион |
Ограничения по времени
| Квота | Описание | Limit (первое поколение) | Limit (второе поколение) | Можно увеличить | Область действия |
|---|---|---|---|---|---|
| Максимальная продолжительность функции | Максимальное время, в течение которого функция может выполняться до принудительного завершения. | 540 секунд |
|
Нет | за вызов; |
Ограничения частоты запросов
| Квота | Описание | Limit (первое поколение) | Limit (второе поколение) | Можно увеличить | Область действия |
|---|---|---|---|---|---|
| Вызовы API (ЧТЕНИЕ) | Вызовы для описания или перечисления функций через API Cloud Functions | 5000 за 100 секунд | 1200 за 60 секунд | Только для устройств первого поколения | на проект (первое поколение) на регион (второе поколение) |
| Вызовы API (ЗАПИСЬ) | Вызовы для развертывания или удаления функций через API Cloud Functions | 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, быстро масштабируются для обработки входящего трафика, а фоновые функции масштабируются более постепенно. Возможность масштабирования функции определяется несколькими факторами, в том числе:
- Время выполнения функции (быстро выполняющиеся функции обычно можно масштабировать, чтобы обрабатывать больше одновременных запросов).
- Время, необходимое для инициализации функции при холодном запуске.
- Процент ошибок в функции.
Временные факторы, такие как региональная нагрузка и пропускная способность центра обработки данных.
Дополнительные квоты для фоновых функций
| Квота | Описание | Ограничение | Можно увеличить | Область действия | Версия продукта |
|---|---|---|---|---|---|
| Максимальное количество одновременных вызовов | Максимальное количество одновременных вызовов одной функции Пример. Если обработка каждого события занимает 100 секунд, то средняя частота вызовов будет ограничена 30 в секунду. |
3000 | Да | за функцию | Только для устройств первого поколения |
| Максимальная частота вызовов | Максимальная скорость обработки событий одной функцией Пример. Если обработка события занимает 100 мс, скорость вызова будет ограничена 1000 в секунду, даже если в среднем параллельно обрабатывается только 100 запросов. |
1000 в секунду | Нет | за функцию | Только первое поколение |
| Максимальный размер данных о событии, обрабатываемых одновременно | Максимальный общий размер входящих событий для одновременных вызовов одной функции Пример. Если размер событий составляет 1 МБ, а их обработка занимает 10 секунд, средняя скорость будет равна одному событию в секунду, поскольку 11-е событие будет обработано только после завершения обработки одного из первых 10 событий. |
10 МБ | Нет | за функцию | первого и второго поколений. |
| Максимальная пропускная способность входящих событий | Максимальная пропускная способность входящих событий для одной функции Пример. Если размер событий составляет 1 МБ, то частота вызовов может быть максимум 10 в секунду, даже если функции выполняются за 100 мс. |
10 МБ/с | Нет | за функцию | первого и второго поколений. |
Что происходит, когда достигается лимит квоты
Если функция использует все выделенные ресурсы, они становятся недоступны, пока квота не будет обновлена или увеличена. Это может означать, что ваша функция и все остальные функции в том же проекте не будут работать до этого времени. Функция возвращает код ошибки HTTP 500, если один из ресурсов превышает квоту и функция не может быть выполнена.
Чтобы увеличить квоты сверх значений по умолчанию, указанных здесь, перейдите на Cloud Functions страницу квот, выберите квоты, которые хотите изменить, нажмите Изменить квоты, укажите информацию о пользователе, если будет предложено, и введите новый лимит квоты для каждой выбранной квоты.
Ограничения квоты для развертывания с помощью интерфейса командной строки Firebase
Для каждой функции, которую развертывает интерфейс командной строки Firebase, действуют следующие ограничения на частоту и время:
- Вызовы API (ЧТЕНИЕ) – 1 вызов на развертывание, независимо от количества функций
- Лимит: 5000 запросов за 100 секунд.
- Вызовы API (ЗАПИСЬ) – 1 вызов на функцию
- Лимит: 80 запросов за 100 секунд.
Также ознакомьтесь со справочным руководством по интерфейсу командной строки Firebase.