上限と割り当ては、自動プロセスが Directory API を不適切な方法で使用することを防ぎ、Google のインフラストラクチャを保護します。API からの過剰なリクエストは、無害な入力ミスや、不必要に API を呼び出す非効率的な設計のシステムが原因で発生する場合があります。こうした原因とは無関係に、Google Workspace システムの全体的な正常性を維持するには、特定のソースからのトラフィックが一定のレベルに達した場合にトラフィックをブロックする必要があります。つまり、あるデベロッパーの操作によってコミュニティに悪影響が及ぶ事態を防ぎます。
万一、API リクエストが失敗すると、API から HTTP ステータス コードとエラーの理由が返されます。さらに、レスポンス本文にエラーの原因についての詳しい説明が記載されます。
次の一覧に、割り当て上限に達したために発生するエラーの考えられるエラーコード、理由、対応する説明、推奨される対処方法を示します。
コード | 理由 | 説明 | 推奨される対応 |
---|---|---|---|
403 | userRateLimitExceeded | ユーザーのレート制限を超えたことを示します。Google Cloud コンソールで設定されるデフォルト値は、Google Cloud プロジェクトごとにユーザーごとに 1 分あたり 2,400 クエリです。 | Google Cloud プロジェクトの Admin SDK API 割り当てページでユーザーあたりの上限を引き上げるか、指数バックオフを使用してリクエストの送信レートを抑えます。 |
403 | quotaExceeded | 特定のオペレーションの同時実行リクエストの上限に達したことを示します。 | 指数バックオフを使用して再試行します。リクエストの送信レートを遅くする必要があります。 |
429 | rateLimitExceeded | 特定のオペレーションの同時実行リクエストの上限に達したことを示します。 | 指数バックオフを使用して再試行します。リクエストを送信するレートを遅くする必要があります。この上限は、API クライアントまたはユーザーごとではなく、Google Workspace アカウントごとに適用されます。この上限を引き上げることはできません。 |
指数バックオフの実装
指数バックオフは、失敗したリクエストをクライアントが再試行する際、失敗するごとに次の再試行までの待ち時間を増やしていく処理です。これは、ネットワーク アプリケーションに使われる標準的な エラー処理方法です。指数バックオフを使用すると、帯域幅の使用効率が高くなり、より少ないリクエスト数で正常なレスポンスを受け取ることができ、同時実行環境でのリクエストのスループットが最大化します。
単純な指数バックオフを実装するフローを次に示します。
- API に対してリクエストを行います。
- 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
- 1 秒 +
random_number_milliseconds
秒待ちます。 - リクエストを再試行します。
- 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
- 2 秒 +
random_number_milliseconds
秒待ちます。 - リクエストを再試行します。
- 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
- 4 秒 +
random_number_milliseconds
秒待ちます。 - リクエストを再試行します。
- 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
- 8 秒 +
random_number_milliseconds
秒待ちます。 - リクエストを再試行します。
- 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
- 16 秒 +
random_number_milliseconds
秒待ちます。 - リクエストを再試行します。
- まだエラーが発生する場合は、停止してエラーを記録します。
上記のフローで、random_number_milliseconds
は、1, 000 ミリ秒以下の乱数です。これは、一部の同時実装で起こる特定のロックエラーを回避するために必要です。
random_number_milliseconds
は、待機するたびに再定義する必要があります。
注: 待機時間は常に(2 ^ n)+ random_number_milliseconds
です。n は単調増加する整数で、最初は 0 に定義されます。n は反復処理(リクエスト)のたびに 1 ずつ増加します。
このアルゴリズムは、n が 5 になると終了するように設定されています。この上限値は、クライアントによる無制限の再試行を防ぐことが目的です。合計遅延時間が約 32 秒に達すると、リクエストは「修復不可能なエラー」と見なされます。必要に応じて、API クライアントでより多くの試行を実装できます。
API の制限と割り当て
API の上限カテゴリ | 上限 |
---|---|
ユーザーの作成 | Directory API を使用して、1 秒あたりドメインごとに 10 人を超えるユーザーを作成することはできません。 |
グループが別のグループにメンバーとして追加された | 子グループのメンバーが親グループのメンバーに現れるまでに 10 分ほどかかることがあります。この上限は、システムの容量によって変わる可能性があります。 |
モバイル デバイス |
Directory API を使用すると、最大で次の操作を実行できます。
|
ユーザー名の変更 | すべてのサービスに反映されるまでに最大 10 分かかることがあります。ユーザー名を変更する前に、ユーザーをブラウザのすべてのセッションやサービスからログアウトさせることをおすすめします。詳しくは、ユーザーを更新するをご覧ください。 |
組織部門の作成/更新 |
|
API 割り当てカテゴリ | 割り当て |
Chrome デバイス annotatedLocation 、最大文字数 |
デバイスの位置情報の最大文字数は 200 文字です。 |
Chrome デバイス notes 、最大文字数 |
デバイスのメモ情報の最大文字数は 500 文字です。 |
Chrome デバイス、最大 user 文字 |
デバイス ユーザーの名前の最大文字数は 100 文字です。 |
ドメイン エイリアス(最大) | ドメイン エイリアスの最大数は 20 です。 |
グループ、説明 | 説明の最大文字数は 4,096 文字です。 |
グループ(アカウントごと) | 従来の無償版 G Suite アカウントでは、グループの数は 10 個までです。他のエディションでは、グループの数に制限はありません。 |
グループ、グループあたりのメンバー数 | 従来の G Suite(無償版)アカウントでは、グループに最大 100 人のメンバーを含めることができます。他のエディションの場合、グループのメンバー数に制限はありません。ユーザーあたりのグループ メンバーシップの上限については、Google グループのポリシーと制限をご覧ください。 |
maxResults クエリ文字列 | API から次が返されます。
|
複数のドメイン、アカウントで許可されるドメインの最大数 | 600(プライマリ ドメイン 1 個 + 追加ドメイン 599 個) |
組織部門、一度に移動するユーザーの最大数 | 一度に移動できるユーザーは 20 人までです。また、ユーザーのメインのメールアドレスがアカウントにすでに存在している必要があります。 |
ユーザー エイリアス | 各ユーザー アカウントで許可されるエイリアスの合計数は 30 です。 |
ユーザー エイリアス(削除されたエイリアスを使用) | 削除されたユーザー エイリアスは、すぐに再び使用できます。 |
その他の種類の制限 | 制限事項とガイドライン |
---|---|
お支払いとユーザーの作成 | Google Workspace のフレキシブル プランのユーザーである場合、この API を使用して作成すると金銭的な影響が生じ、顧客の請求先アカウントに請求されます。たとえば、Google Workspace のフレキシブル プランをご利用の場合、10 人のユーザーを作成すると、10 個の Google Workspace ライセンスの料金が、作成日から按分してアカウントに請求されます。年間プランをご利用の場合は、すでに一定数のライセンス料金を前払いしているため、その数に応じた数のユーザーしか作成できません。お支払いプランと課金アカウントについて詳しくは、管理者向けヘルプセンターをご覧ください。 |
氏名 | 姓と名の最大文字数は 40 文字です。Unicode/UTF-8 文字に対応しており、スペース、英字(a ~ z)、数字(0 ~ 9)、ダッシュ(-)、スラッシュ(/)、ピリオド(.)を使用できます。文字の使用ルールについて詳しくは、管理者向けヘルプセンターをご覧ください。 |
グループの削除 | グループを削除しても、グループ メンバーのユーザー アカウントは削除されません。 |
グループとグループ メンバー、メールアドレスの変更 | このバージョンの API では、Google Workspace サービスを有効にする前にグループのメールアドレスを変更できます。グループ メンバーのメールアドレスを変更するには、管理コンソールを使用します。変更すると、メールアドレスの変更が API に自動的に反映されます。 |
グループ、設定 | グループのアクセス設定、共有オプション、モニタリング、ディスカッション アーカイブは、管理コンソールを使用して管理します。グループ設定の詳細については、管理者向けヘルプセンターをご覧ください。 |
グループ、メッセージの送信 | スパムやメールの不正使用を防ぐため、Google では外部受信者に一度に送信できるメールの数に上限を設けています。グループにメッセージを送信する場合、外部メンバーは 1 人の受信者としてカウントされます。詳しくは、メール送信に関する制限事項と Gmail ユーザーへのメールがブロックまたは迷惑メール扱いされないようにする をご覧ください。 |
グループ、NDR メッセージの送信 | 「返送メッセージ」とも呼ばれる配信不能レポート(NDR)をグループに送信または転送することはできません。 |
ユーザーが作成したグループ、制限事項 | ユーザー作成グループの上限については、管理者向けヘルプセンターをご覧ください。 |
組織部門、サービスのオンとオフの設定 | 管理コンソールを使用して、組織部門のサービスの有効化と無効化を管理します。 |
パスワード | 任意の文字を組み合わせることができます。8 文字以上で入力してください。最大で 100 文字です。 |
写真 | このバージョンの API では、写真とは、ユーザーの最新の Google プロフィール写真です。 |
ユーザー名 | ユーザー名には、アルファベット(a ~ z)、数字(0 ~ 9)、ダッシュ(-)、アンダースコア(_)を使用できます。Google Workspace ではピリオド(.)も認識されます。これは Gmail とは異なります。ユーザー名には、等号(=)、山カッコ(<、>)、連続した複数のピリオド(.)を含めることはできません。詳しくは、管理者向けヘルプセンターをご覧ください。 |
ユーザー名、名前の変更 | Google ハングアウトでは、名前を変更すると、記憶されているすべてのチャット招待が破棄されます。ユーザーは、友達と再びチャットするために権限をリクエストする必要があります。メールの転送設定がある場合に配信を継続できるように、以前のユーザー名はメール エイリアスとして保持され、新しいユーザー名は使用できなくなります。ユーザー名を変更した場合の影響について詳しくは、管理者向けヘルプセンターをご覧ください。名前を変更した後にメール エイリアスを削除するには、ユーザーのエイリアスを削除するオペレーションを使用します。 |
複数のドメイン内のユーザー | Google Workspace アカウントには、どのドメインでも含めることができます。複数のドメイン アカウントの場合、1 つのドメインのユーザーは他のアカウント ドメインのユーザーとサービスを共有できます。複数ドメインのコンポーネントは次のとおりです。
|
警告、グループ メンバー | GROUP_CANNOT_CONTAIN_CYCLE - API では、グループ メンバーシップに循環を許可していません。たとえば、group1 が group2 のメンバーの場合、group2 を group1 のメンバーにすることはできません。 |