Directory API: 制限と割り当て

上限と割り当ては、自動プロセスが 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 アカウントごとに適用されます。この上限を引き上げることはできません。

指数バックオフの実装

指数バックオフは、失敗したリクエストをクライアントが再試行する際、失敗するごとに次の再試行までの待ち時間を増やしていく処理です。これは、ネットワーク アプリケーションに使われる標準的な エラー処理方法です。指数バックオフを使用すると、帯域幅の使用効率が高くなり、より少ないリクエスト数で正常なレスポンスを受け取ることができ、同時実行環境でのリクエストのスループットが最大化します。

単純な指数バックオフを実装するフローを次に示します。

  1. API に対してリクエストを行います。
  2. 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
  3. 1 秒 + random_number_milliseconds 秒待ちます。
  4. リクエストを再試行します。
  5. 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
  6. 2 秒 + random_number_milliseconds 秒待ちます。
  7. リクエストを再試行します。
  8. 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
  9. 4 秒 + random_number_milliseconds 秒待ちます。
  10. リクエストを再試行します。
  11. 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
  12. 8 秒 + random_number_milliseconds 秒待ちます。
  13. リクエストを再試行します。
  14. 再試行可能なエラーコードを含むエラー レスポンスを受け取ります。
  15. 16 秒 + random_number_milliseconds 秒待ちます。
  16. リクエストを再試行します。
  17. まだエラーが発生する場合は、停止してエラーを記録します。

上記のフローで、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 を使用すると、最大で次の操作を実行できます。

  • 1 秒あたり 20 件のアクション リクエスト。
  • 1 秒あたり 20 件の削除リクエスト。
  • 1 秒あたり 10 件の GET リクエスト。
  • 1 秒あたり 10 件のリスト リクエスト。
ユーザー名の変更 すべてのサービスに反映されるまでに最大 10 分かかることがあります。ユーザー名を変更する前に、ユーザーをブラウザのすべてのセッションやサービスからログアウトさせることをおすすめします。詳しくは、ユーザーを更新するをご覧ください。
組織部門の作成/更新
  • Directory API を使用して、1 秒あたり 1 お客様につき 1 つの組織部門を作成または更新することはできません。
  • 顧客の組織部門に関する階層の深さは、35 レベルに制限されています。
  • お客様ごとの組織部門の合計数は 40,000 以下にする必要があります。
API 割り当てカテゴリ 割り当て
Chrome デバイス annotatedLocation、最大文字数 デバイスの位置情報の最大文字数は 200 文字です。
Chrome デバイス notes、最大文字数 デバイスのメモ情報の最大文字数は 500 文字です。
Chrome デバイス、最大 user 文字 デバイス ユーザーの名前の最大文字数は 100 文字です。
ドメイン エイリアス(最大) ドメイン エイリアスの最大数は 20 です。
グループ、説明 説明の最大文字数は 4,096 文字です。
グループ(アカウントごと) 従来の無償版 G Suite アカウントでは、グループの数は 10 個までです。他のエディションでは、グループの数に制限はありません。
グループ、グループあたりのメンバー数 従来の G Suite(無償版)アカウントでは、グループに最大 100 人のメンバーを含めることができます。他のエディションの場合、グループのメンバー数に制限はありません。ユーザーあたりのグループ メンバーシップの上限については、Google グループのポリシーと制限をご覧ください。
maxResults クエリ文字列 API から次が返されます。
  • Chrome とモバイル デバイス - デフォルトは 1 ページあたり 100 件で、最大は 100 件です。
  • グループとグループ メンバー - デフォルトでは 1 ページあたり 200 件まで表示できます。
  • ユーザー - デフォルトは 100 エントリで、ページあたりの最大エントリ数は 500 です。
ユーザー エイリアスと組織部門のリソースでは、レスポンスのページネーションは使用されません。すべてのユーザーのプライマリ メールがアルファベット順で返されます。レスポンスの順序は大文字と小文字を区別しません。
複数のドメイン、アカウントで許可されるドメインの最大数 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 つのドメインのユーザーは他のアカウント ドメインのユーザーとサービスを共有できます。複数ドメインのコンポーネントは次のとおりです。
  • プライマリ ドメイン - アカウントのプライマリ ドメインは、Google Workspace 利用規約に同意した管理者のドメインです。このドメインは、最上位の組織部門のアカウント レベルにあります。Google Workspace アカウントを登録する際は、メインのドメインにビジネス用ドメインを使用し、他のドメインはパイロットやテストなどの特殊な用途に予約することをおすすめします。
    • すべての特権管理者はアカウント全体を管理できます。
    • API を使用して Google Workspace アカウントのプライマリ ドメインを変更または移動することはできません。ただし、API を使用してユーザーのアカウント名を変更し、メールアドレスを別のドメインに変更することは可能です。
    • Google Workspace アカウントの場合は、メインのドメインの所有権を証明する期間は 21 日間です。追加のドメインについては、ユーザーのメインのメールアドレスとしてドメインを使用する前に、ドメインの所有権を確認する必要があります。この場合、21 日間の猶予期間は適用されません。
    • このバージョンの API では、プライマリ ドメインの設定は、Google Workspace サービスへのユーザー アクセスを除き、アカウントに関連付けられているすべてのドメインに適用されます。
  • 追加のアカウント ドメイン - プライマリ ドメインを設定してアカウントを設定したら、追加のドメインをアカウントに追加できます。追加のドメインの場合は、このドメインを設定するときと、ユーザーのメインのメールアドレスとしてドメインを使用する前に、所有権を確認してください。
  • ユーザーのホームドメイン - ユーザーのメインのメールアドレスで使用されているドメインがユーザーのホームドメインです。このドメインは、プライマリ ドメインを含む、アカウント内の任意のドメインにすることができます。
最新のマルチドメインの制限については、マルチドメインの制限事項をご覧ください。これには、ドメイン エイリアス、アカウントの統合に関する情報が含まれます。
警告、グループ メンバー GROUP_CANNOT_CONTAIN_CYCLE - API では、グループ メンバーシップに循環を許可していません。たとえば、group1 が group2 のメンバーの場合、group2 を group1 のメンバーにすることはできません。