Mail Admin Quarantine API применяет поминутные квоты на использование для каждого облачного проекта Google Cloud, чтобы защитить инфраструктуру Google Workspace, которая ищет и извлекает сообщения, помещенные в карантин. Квоты группируются по типу работы, выполняемой методом.
Квоты
В таблице ниже перечислены квоты. Каждая квота устанавливается на минуту на облачный проект и учитывает все запросы, которые проект отправляет от имени всех клиентов Google Workspace и администраторов.
| Квота | Значение | Методы |
|---|---|---|
| Запросы на поиск и получение списков | 60 запросов в минуту; | customers.quarantinedMessages.list, customers.quarantinedMessages.search |
| Запросы на чтение | 1200 запросов в минуту; | customers.quarantinedMessages.get, customers.quarantines.get, customers.quarantines.list, customers.operations.get. |
| Запросы на запись | 300 запросов в минуту; | customers.quarantinedMessages.release, customers.quarantinedMessages.deny, customers.quarantinedMessages.batchRelease, customers.quarantinedMessages.batchDeny. |
Каждый вызов API считается одним запросом независимо от размера страницы или, для пакетных методов, количества сообщений в пакете. Например, запрос batchRelease с 500 сообщениями расходует один запрос на запись.
Текущее использование квоты проекта можно посмотреть в консоли Google Cloud в разделе API и сервисы > Включенные API и сервисы > Admin Quarantine API > Квоты и системные ограничения.
Ограничения запросов
| Ограничение | Значение |
|---|---|
Максимальное количество запросов list и search: pageSize. |
300 сообщений |
Максимальное количество сообщений на запрос batchRelease или batchDeny |
500 сообщений; |
| Окно поиска и списка | Сообщения, полученные за последние 30 дней |
Как устранить ошибки, связанные с квотами
Если квота превышена, API возвращает ошибку HTTP 429 со статусом RESOURCE_EXHAUSTED:
{
"error": {
"code": 429,
"message": "Quota exceeded for quota metric 'Search and list quarantined messages requests' and limit 'Search and list requests per minute per project' of service 'mailadminquarantine.googleapis.com' for consumer 'project_number:123456789012'.",
"status": "RESOURCE_EXHAUSTED"
}
}
Чтобы не превышать квоты:
- Повторите попытку с экспоненциальной выдержкой. Если вы получили ошибку
429, подождите, прежде чем повторить попытку, и увеличивайте время ожидания после каждой неудачной попытки. Подробнее об экспоненциальной выдержке… - Используйте максимально возможный размер страницы. Запросы на поиск и получение списка имеют наименьшую квоту. Запрашивайте до 300 сообщений на страницу вместо множества небольших страниц.
- Используйте фильтры. Чтобы получать только нужные сообщения, сузьте запросы
searchс помощьюfilterилиquery. - Используйте пакетные методы для массовых действий. Один запрос
batchReleaseилиbatchDenyможет разрешить или отклонить до 500 писем, тогда как вызовreleaseилиdenyобрабатывает только одно письмо. - Опрашивайте операции как можно реже. При ожидании пакетной операции вызывайте метод
getресурсаcustomers.operationsкаждые несколько секунд, а не непрерывно. - Выполните инкрементную синхронизацию. Вместо того чтобы каждый раз заново выводить список всех писем в карантине, отфильтруйте их по
status = PENDING_TRIAGEи обрабатывайте только новые сообщения.
В предварительной версии для разработчиков увеличить квоту нельзя. Если для вашего варианта использования требуются более высокие квоты, оставьте отзыв в программе предварительной версии для разработчиков Google Workspace.