Лимиты на использование

Поскольку 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 минут), мы рекомендуем, чтобы ваш код перехватывал исключение и использовал усеченную экспоненциальную задержку , чтобы ваши устройства не создавали чрезмерной нагрузки.

Экспоненциальная задержка — стандартная стратегия обработки ошибок для сетевых приложений. Алгоритм экспоненциальной задержки повторяет запросы, используя экспоненциально увеличивающееся время ожидания между запросами, вплоть до максимального значения задержки. Если запросы по-прежнему неуспешны, важно, чтобы задержки между запросами постепенно увеличивались до тех пор, пока запрос не будет успешно выполнен.

Пример алгоритма

Алгоритм экспоненциальной задержки повторяет запросы экспоненциально, увеличивая время ожидания между попытками до максимального значения задержки. Например:

  1. Сделайте запрос к API Google Vault.
  2. Если запрос не выполнен, подождите 1 + random_number_milliseconds и повторите запрос.
  3. Если запрос не выполнен, подождите 2 + random_number_milliseconds и повторите запрос.
  4. Если запрос не выполнен, подождите 4 + random_number_milliseconds и повторите запрос.
  5. И так далее, до maximum_backoff .
  6. Продолжайте ждать и повторять попытки до достижения максимального количества повторных попыток, но не увеличивайте период ожидания между повторными попытками.

где:

  • Время ожидания составляет 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.