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 秒あたり 1 つのドメインにつき 10 人を超えるユーザーを作成することはできません。
グループが別のグループのメンバーとして追加されました 子グループのメンバーが親グループのメンバーに現れるまでに 10 分ほどかかることがあります。この上限は、システムの容量によって変更される可能性があります。
モバイル デバイス

Directory API を使用すると、次の処理を最大で実行できます。

  • 1 秒あたり 20 件のアクション リクエスト。
  • 1 秒あたり 20 件の削除リクエスト。
  • 1 秒あたり 10 個の GET リクエスト。
  • 1 秒あたり 10 件のリスト リクエスト。
ユーザー名の変更 すべてのサービスに反映されるまでに最大 10 分かかることがあります。ユーザー名を変更する前に、ユーザーをブラウザのすべてのセッションやサービスからログアウトさせることをおすすめします。詳しくは、ユーザーを更新するをご覧ください。
組織部門の作成/更新
  • Directory API を使用して、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 とモバイル デバイス - デフォルトと最大 100 件のエントリがページごとに表示されます。
  • グループとグループ メンバー - 1 ページあたりデフォルトで最大 200 件のエントリ。
  • ユーザー - デフォルトは 100 エントリ、最大は 500 エントリです。
ユーザー エイリアスと組織部門のリソースでは、レスポンスのページネーションは使用されません。すべてのユーザーのメインのメールアドレスがアルファベット順で返され、レスポンスの順序では大文字と小文字は区別されません。
マルチドメイン、1 つのアカウントで許可されるドメインの最大数 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 サービスが有効になる前にグループのメールアドレスを変更できます。Google 管理コンソールを使用して、グループ メンバーのメールアドレスを変更します。変更すると、API にメールアドレスの変更が自動的に反映されます。
グループ、設定 グループのアクセス設定、共有オプション、モニタリング、ディスカッション アーカイブは、Google 管理コンソールを使用して管理します。グループ設定について詳しくは、管理者向けヘルプセンターをご覧ください。
グループ、メッセージの送信 スパムやメールの不正使用を防ぐため、Google では外部の宛先に一度に送信できるメールの数に上限を設けています。グループにメッセージを送信すると、外部メンバーはそれぞれ 1 人の受信者としてカウントされます。詳しくは、メールの送信に関する制限事項Gmail ユーザーへのメールがブロックまたは迷惑メール扱いされないようにする をご覧ください。
グループ、NDR メッセージの送信 「返送メッセージ」とも呼ばれる配信不能レポート(NDR)をグループに送信または転送することはできません。
ユーザーが作成したグループ、制限事項 ユーザーが作成したグループの制限については、管理者向けヘルプセンターをご覧ください。
組織部門、サービスのオンとオフの設定 Google 管理コンソールを使用して、組織部門のサービスのオンとオフを管理します。
パスワード 任意の文字の組み合わせを含めることができます。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 のメンバーにすることはできません。