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