Квоты и лимиты в Cloud Functions
В сервисе Cloud Functions действуют следующие ограничения:
- Квоты
— организационные ограничения, которые можно изменить по запросу в техническую поддержку. - Лимиты — технические ограничения, обусловленные особенностями архитектуры Yandex Cloud. Изменить лимиты невозможно.
Если вам необходимо больше ресурсов, увеличьте квоты одним из способов:
- сформируйте запрос на увеличение
. У вас должна быть рольquota-manager.requestOperator
или выше (editor
илиadmin
); - обратитесь в техническую поддержку
и расскажите, какие потребляемые квоты нужно увеличить и на сколько.
Примечание
Чтобы правильно выбрать, какие квоты увеличить, ознакомьтесь с их особенностями и взаимосвязью.
Квоты
Вид ограничения | Значение |
---|---|
Количество триггеров в одном облаке | 100 |
Количество функций в одном облаке | 10 |
Количество тегов одной функции | 10 |
Количество одновременно выполняемых вызовов всех функций в каждой зоне доступности | 10 |
Количество экземпляров функций в каждой зоне доступности | 10 |
Суммарный объем RAM для всех запущенных функций в каждой зоне доступности | 20 ГБ |
Количество подготовленных экземпляров функций в одном облаке | 2 |
Количество одновременных операций над одной функцией и ее версиями | 10 |
Количество одновременных операций над всеми функциями и версиями в одном каталоге | 15 |
Количество одновременных операций над всеми функциями и версиями в одном облаке | 20 |
Количество пользовательских сетей в одном облаке | 1 |
Количество сетевых пакетов в секунду на экземпляр функции | 10 000 |
Подробнее о взаимосвязи квот см. в разделе Взаимосвязь квот.
Лимиты
Вид ограничения | Значение |
---|---|
Максимальный объем файла для загрузки | |
ZIP-архив через консоль управления | 3,5 МБ |
ZIP-архив через S3 бакет | 128 МБ |
Распакованный ZIP-архив через S3 бакет | 680 МБ |
Другие ограничения | |
Максимальный размер JSON-структуры запроса и ответа | 3,5 МБ |
Максимальный объем временных файлов | 512 МБ |
Максимальное время выполнения функции до таймаута, включая начальную инициализацию при первом запуске1 | 1 час |
Максимальный объем RAM для одного экземпляра функции | 8 ГБ |
Максимальный объем переменных окружения, включая их имена2 | 4 КБ |
Максимальное количество триггеров для одной очереди сообщений | 1 |
Максимальный размер сообщения для триггера | 256 КБ |
1 Таймаут больше 10 минут доступен только для долгоживущих функций.
2 Секреты Lockbox передаются через переменные окружения и также учитываются в этом лимите.
Прочие ограничения
В процессе установки зависимостей:
- суммарное время установки зависимостей ограничено 5 минутами, после чего сборка завершится с ошибкой.
- на выполнение команды установки зависимостей выделяется 1 ГБ RAM, из которых 700 МБ выделены для временного файлового хранилища (tmpfs). Память расходуется на запущенные процессы и файлы, созданные и скачанные во время сборки.
- доступно 50% CPU.
Если сборка длится дольше 5 минут или требует больше ресурсов, соберите зависимости самостоятельно и загрузите функцию в ZIP-архиве.
Взаимосвязь квот
Квоты одновременно выполняемых вызовов, экземпляров функций и суммарного объема RAM связаны между собой. Для увеличения количества вызовов функций повышайте:
- Квоты одновременно выполняемых вызовов и экземпляров в равной степени.
- Квоту суммарного объема RAM до значения, фактически потребляемого экземплярами.
Количество одновременно выполняемых вызовов и экземпляров функций взаимосвязаны следующим образом:
- Не имеет смысла запрашивать экземпляров функций больше одновременных вызовов функций. Для обработки каждого вызова используется один экземпляр. Если экземпляров больше, они простаивают.
- Устанавливать количество одновременно выполняемых вызовов выше количества экземпляров стоит, только чтобы вызов функции не завершался ошибкой, когда все экземпляры заняты. В этом случае вызов становится в очередь, он считается выполняемым и учитывается в квоте на количество одновременно выполняемых вызовов.
Экземпляры и вызовы распределяются по зонам доступности случайным образом. Cloud Functions не гарантирует равномерное распределение вызовов по зонам. Например, все вызовы вне зависимости от их количества могут попасть в одну зону. Поэтому при квоте 10 вы можете одновременно вызвать от 10 до 30 функций и использовать от 10 до 30 экземпляров, но гарантировано только 10.
Квота суммарного объема RAM для всех запущенных функций ограничивает количество экземпляров. Устанавливайте квоту суммарного объема RAM равную произведению количества экземпляров и среднего объема RAM функций, для которых они будут использоваться. Например, при вызове 10 функций с объемом RAM 4 ГБ уже 5 используемых экземпляров израсходуют всю квоту суммарного объема RAM в 20 ГБ, и новые экземпляры для выполнения оставшихся 5 вызовов созданы не будут. В таком случае для квоты суммарного объема RAM необходимо установить значение 40 ГБ.
Квоты количества одновременных операций над всеми функциями и версиями ограничивают только такие операции, как создание функции или версии и удаление функции. Эти квоты не влияют на количество одновременно выполняемых вызовов функций и экземпляров.