Ограничения и квоты защищают инфраструктуру Google от автоматизированных процессов, использующих API Центра оповещений ненадлежащим образом. Чрезмерное количество запросов к API может быть результатом безобидной опечатки или неэффективной работы системы, выполняющей ненужные вызовы API. Независимо от причины, блокировка трафика из определенного источника после достижения им определенного уровня необходима для общей работоспособности системы Google Workspace. Это помогает гарантировать, что действия одного разработчика не окажут негативного влияния на всё сообщество.
В маловероятном случае сбоя вашего API-запроса вы получите ответ с кодом состояния HTTP. Код состояния 403 содержит информацию об ошибке, связанной с некорректными входными данными, а код состояния HTTP 503 — информацию об ошибке, указывающую на превышение квот API. Эти ответы позволяют вашему пользовательскому приложению обнаруживать эти ошибки и предпринимать соответствующие действия.
Если ваши запросы должны быть выполнены за фиксированный период времени, отправляйте их параллельно или используйте несколько потоков в вашем Java- или C#-приложении. Примером параллельных запросов может служить запрос небольших партий электронных писем от разных пользователей, а не добавление или удаление большого количества писем от одного пользователя одновременно. В случае использования потоков попробуйте начать с 10 потоков, по одному потоку на каждое электронное письмо пользователя. Обратите внимание, что рекомендация по количеству потоков имеет свои компромиссы и не подходит для всех ситуаций с API. Если количество запросов станет слишком большим, возникнут ошибки квоты.
Для всех ошибок, связанных со временем (максимум N событий в течение N секунд на поток), особенно для ошибок с кодом состояния 503, мы рекомендуем вашему коду перехватывать исключение и, используя алгоритм экспоненциальной задержки , ждать небольшую паузу перед повторной попыткой неудачного вызова. Пример использования API Alert Center для одного потока: подождать 5 секунд и повторить неудачный вызов. Если запрос успешен, повторить этот шаблон для остальных потоков. Если второй запрос не удался, ваше приложение должно уменьшить частоту запросов до тех пор, пока один из них не будет успешным. Например, увеличить начальную задержку в 5 секунд до 10 секунд и снова повторить неудачный вызов. Также следует установить ограничение на количество повторных попыток. Например, повторить запрос от 5 до 7 раз с разным временем задержки, прежде чем ваше приложение вернет пользователю ошибку.
| Категории ограничений API | Пределы |
|---|---|
| Показатели QPS и QPD Центра оповещения | API ограничивает количество запросов для вашего проекта Google Cloud. Максимальное количество запросов в секунду для проекта (project QPS) составляет 1000. А максимальное количество запросов в секунду на одного пользователя (user QPS) составляет 150. Если эти лимиты превышены, сервер возвращает код состояния HTTP |
| Другие типы ограничений | Ограничения и рекомендации |
|---|---|
| Формат данных, по умолчанию | Формат данных по умолчанию — JSON. |
| Несанкционированные запросы | Google не разрешает несанкционированные запросы к этому API. Запрос считается несанкционированным, если не предоставлен токен авторизации. Для получения дополнительной информации см. раздел «Авторизация запросов» . |
Запросить увеличение квоты по каждому проекту.
В зависимости от объема используемых ресурсов вашего проекта, вам может потребоваться запросить корректировку квоты. Вызовы API, выполняемые сервисным аккаунтом, считаются использованием одного аккаунта. Подача заявки на корректировку квоты не гарантирует ее одобрения. Запросы на корректировку квоты, которые значительно увеличат ее значение, могут обрабатываться дольше.
Не все проекты имеют одинаковые квоты. По мере того, как вы будете все больше использовать Google Cloud, значения ваших квот могут потребовать увеличения. Если вы ожидаете значительного увеличения использования в будущем, вы можете заблаговременно запросить корректировку квот на странице «Квоты и системные ограничения» в консоли Google Cloud.
Для получения более подробной информации ознакомьтесь со следующими ресурсами: