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