Mail Admin Quarantine API は、検疫されたメッセージを検索して取得する Google Workspace インフラストラクチャを保護するために、Google Cloud プロジェクトごとに 1 分あたりの使用量割り当てを適用します。割り当ては、メソッドが実行する作業の種類ごとにグループ化されます。
割り当て
次の表に、割り当てを示します。各割り当ては Cloud プロジェクトごとに 1 分あたりで、プロジェクトがすべての Google Workspace のお客様と権限を借用した管理者に対して行うすべてのリクエストがカウントされます。
| 割り当て | 値 | メソッド |
|---|---|---|
| 検索リクエストと一覧取得リクエスト | 1 分あたり 60 回のリクエスト | customers.quarantinedMessages.list、customers.quarantinedMessages.search |
| 読み取りリクエスト | 1 分あたり 1,200 回のリクエスト | customers.quarantinedMessages.get、customers.quarantines.get、customers.quarantines.list、customers.operations.get |
| 書き込みリクエスト | 1 分あたり 300 回のリクエスト | customers.quarantinedMessages.release、customers.quarantinedMessages.deny、customers.quarantinedMessages.batchRelease、customers.quarantinedMessages.batchDeny |
各 API 呼び出しは、ページサイズや、バッチメソッドの場合はバッチ内のメッセージ数に関係なく、1 つのリクエストとしてカウントされます。たとえば、500 件のメッセージを含む batchRelease リクエストは、1 つの書き込みリクエストを消費します。
プロジェクトの現在の割り当て使用量は、Google Cloud コンソールの [API とサービス] > [有効な API とサービス] > [Admin Quarantine API] > [割り当てとシステム制限] で確認できます。
リクエストの制約
| 制約 | 値 |
|---|---|
list リクエストと search リクエストの最大 pageSize |
300 件のメッセージ |
batchRelease または batchDeny リクエストあたりの最大メッセージ数 |
500 件のメッセージ |
| 検索とリストのウィンドウ | 過去 30 日間に受信したメッセージ |
割り当てエラーを解決する
プロジェクトが割り当てを超えると、API はステータス RESOURCE_EXHAUSTED の HTTP 429 エラーを返します。
{
"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エラーが発生した場合は、再試行する前に待機し、試行が失敗するたびに待機時間を増やします。詳細については、指数バックオフをご覧ください。 - 有用な最大ページサイズを使用する。検索リクエストとリスト リクエストの割り当ては最小です。多数の小さなページではなく、1 ページあたり最大 300 件のメッセージをリクエストします。
- フィルタを使用する。
filterまたはqueryを使用してsearchリクエストを絞り込み、必要なメッセージのみを取得します。 - 一括操作にはバッチメソッドを使用する。1 つの
batchReleaseまたはbatchDenyリクエストで最大 500 件のメッセージを解放または拒否できます。これに対し、releaseまたはdeny呼び出しでは 1 件のメッセージを解放または拒否できます。 - オペレーションのポーリングは控えめに行う。バッチ オペレーションを待機する場合は、
customers.operationsリソースのgetメソッドを継続的に呼び出すのではなく、数秒ごとに呼び出します。 - 増分同期。実行ごとに検疫全体を再一覧表示するのではなく、
status = PENDING_TRIAGEでフィルタして新しいメッセージのみを処理します。
デベロッパー プレビュー期間中は、割り当てを増やすことはできません。ユースケースでより高い割り当てが必要な場合は、Google Workspace デベロッパー プレビュー プログラムからフィードバックをお寄せください。