Поскольку API Google Vault является общим сервисом, мы применяем квоты и ограничения, чтобы гарантировать его справедливое использование всеми пользователями и защитить общую работоспособность системы Google Workspace.
Ограничения продукта
В вашей организации может быть выполнено не более 20 экспортов.
Квоты запросов API
Каждой организации разрешено 600 операций чтения материалов в минуту по всем проектам и пользователям, включая запросы через API Vault и vault.google.com.
В следующих таблицах перечислены лимиты запросов в минуту для каждого проекта:
Запросов на чтение в минуту на проект | |
---|---|
Экспорт, значение и сохраненный запрос | 120 |
Держать | 228 |
Длительная операция | 300 |
Запросов на запись в минуту на проект | |
---|---|
Экспорт | 20 |
Держать | 60 |
Разрешения на материалы | 30 |
Иметь значение | 60 |
Сохраненный запрос | 45 |
Поиск (количество) запросов в минуту по проекту | |
---|---|
Количество поисковых запросов | 20 |
Использование квоты по методу
Квота, используемая запросом, зависит от вызываемого метода. В следующей таблице показано использование квоты для каждого метода:
Метод | Стоимость квоты |
---|---|
matters.close matters.create matters.delete matters.reopen matters.update matters.undelete | 1 прочитанный вопрос 1 вопрос написать |
matters.count | 1 счет |
matters.get | 1 прочитанный вопрос |
matters.list | 10 материалов для чтения |
matters.addPermissions matters.removePermissions | 1 прочитанный вопрос 1 вопрос написать 1 вопрос разрешения записи |
matters.exports.create | 1 экспорт чтения 10 экспортных записей |
matters.exports.delete | 1 экспорт записи |
matters.exports.get | 1 экспорт чтения |
matters.exports.list | 5 экспортных чтений |
matters.holds.addHeldAccounts matters.holds.create matters.holds.delete matters.holds.removeHeldAccounts matters.holds.update | 1 прочитанный вопрос 1 вопрос написать 1 удержание чтения 1 удержание записи |
matters.holds.list | 1 прочитанный вопрос 3 удержания чтения |
matters.holds.accounts.create matters.holds.accounts.delete matters.holds.accounts.list | 1 прочитанный вопрос 1 вопрос написать 1 удержание чтения 1 удержание записи |
matters.savedQueries.create matters.savedQueries.delete | 1 прочитанный вопрос 1 вопрос написать 1 сохраненный запрос прочитан 1 сохраненный запрос записи |
matters.savedQueries.get | 1 прочитанный вопрос 1 сохраненный запрос прочитан |
matters.savedQueries.list | 1 прочитанный вопрос 3 сохраненных запроса чтения |
operations.get | 1 длительная операция чтения |
Устранение ошибок квот, связанных со временем
Если вы превысите квоту на минуту или на организацию, вы обычно получите ответ с кодом состояния HTTP 429: Too many requests
.
Для всех ошибок, связанных со временем (максимум N запросов за X минут), мы рекомендуем, чтобы ваш код перехватывал исключение и использовал усеченную экспоненциальную задержку , чтобы ваши устройства не создавали чрезмерной нагрузки.
Экспоненциальная задержка — стандартная стратегия обработки ошибок для сетевых приложений. Алгоритм экспоненциальной задержки повторяет запросы, используя экспоненциально увеличивающееся время ожидания между запросами, вплоть до максимального значения задержки. Если запросы по-прежнему неуспешны, важно, чтобы задержки между запросами постепенно увеличивались до тех пор, пока запрос не будет успешно выполнен.
Пример алгоритма
Алгоритм экспоненциальной задержки повторяет запросы экспоненциально, увеличивая время ожидания между попытками до максимального значения задержки. Например:
- Сделайте запрос к API Google Vault.
- Если запрос не выполнен, подождите 1 +
random_number_milliseconds
и повторите запрос. - Если запрос не выполнен, подождите 2 +
random_number_milliseconds
и повторите запрос. - Если запрос не выполнен, подождите 4 +
random_number_milliseconds
и повторите запрос. - И так далее, до
maximum_backoff
. - Продолжайте ждать и повторять попытки до достижения максимального количества повторных попыток, но не увеличивайте период ожидания между повторными попытками.
где:
- Время ожидания составляет
min(((2^n)+random_number_milliseconds), maximum_backoff)
, при этомn
увеличивается на 1 для каждой итерации (запроса). - Значение
random_number_milliseconds
— случайное число миллисекунд, меньшее или равное 1000. Это помогает избежать ситуаций, когда множество клиентов синхронизируются по какой-либо причине и все одновременно повторяют попытку, отправляя запросы синхронизированными волнами. Значениеrandom_number_milliseconds
пересчитывается после каждого повторного запроса. -
maximum_backoff
обычно составляет 32 или 64 секунды. Выбор значения зависит от конкретного случая.
Клиент может продолжать повторные попытки после достижения maximum_backoff
time). Повторные попытки после этого момента не требуют дальнейшего увеличения времени отсрочки. Например, если клиент использует максимальное время maximum_backoff
time) 64 секунды, то после достижения этого значения он сможет повторять попытки каждые 64 секунды. В какой-то момент следует запретить клиентам бесконечно повторять попытки.
Время ожидания между попытками и количество попыток зависят от вашего варианта использования и состояния сети.
Запросить увеличение квоты
В зависимости от использования ресурсов вашим проектом вам может потребоваться запросить корректировку квоты. Вызовы API, выполняемые сервисной учётной записью, считаются выполненными с использованием одной учётной записи. Подача заявки на корректировку квоты не гарантирует её одобрения. Запросы на корректировку квоты, которые могут значительно увеличить её значение, могут рассматриваться дольше.
Квоты не у всех проектов одинаковые. По мере того, как вы будете всё активнее использовать Google Cloud, вам может потребоваться увеличить значения квот. Если вы ожидаете значительного роста использования, вы можете заранее запросить корректировку квот на странице «Квоты» в консоли Google Cloud.
Более подробную информацию можно найти на следующих ресурсах:
- О корректировке квот
- Просмотр текущего использования квоты и ограничений
- Запросить более высокий лимит квоты
Цены
Клиентам Google Workspace предоставляется бесплатное использование API Google Vault.