Directory API: 上限と割り当て

制限と割り当ては、自動化されたプロセスが Directory API を不適切な方法で使用することから Google インフラストラクチャを保護します。API から過剰なリクエストが発生するのは、無害なタイプミスや、システムが非効率な設計で不要な API 呼び出しを行うことが原因かもしれません。原因にかかわらず、Google Workspace システムの全体的な健全性を保つには、特定のソースからのトラフィックを特定のレベルに達したらブロックする必要があります。あるデベロッパーの行為が、より大きなコミュニティに悪影響を与えることがないようにする。

万が一 API リクエストが失敗すると、API は HTTP ステータス コードとエラーの理由を返します。また、レスポンスの本文にはエラーの原因についての詳しい説明が含まれます。

次のリストは、割り当て上限に達したことによるエラーに対して発生する可能性のあるエラーコード、理由、対応する説明、推奨される対応を示しています。

コード 理由 説明 推奨される対応
403 userRateLimitExceeded ユーザー レート制限を超過したことを示します。Google Cloud コンソールで設定されているデフォルト値は、Google Cloud プロジェクトごとにユーザー 1 人につき 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 件の取得リクエスト。
  • 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 個に制限されています。その他のエディションでは、グループの数に制限はありません。
グループ、グループあたりのメンバー数 従来の Free Edition アカウントでは、グループに 100 人までのメンバーを含めることができます。その他のエディションでは、グループのメンバー数に制限はありません。 ユーザーあたりのグループ メンバーの上限については、Google グループのポリシーと制限についてをご覧ください。
maxResults クエリ文字列 API から以下が返されます。
  • Chrome とモバイル デバイス - デフォルトで、1 ページあたり最大 100 個のエントリ。
  • グループとグループ メンバー - ページあたりデフォルトで最大 200 個のエントリ。
  • ユーザー - デフォルトで 1 ページあたり 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 サービスを有効にする前にグループのメールアドレスを変更できます。グループ メンバーのメールアドレスを変更するには、管理コンソールを使用します。変更すると、メールアドレスの変更が API に自動的に反映されます。
グループ、設定 グループのアクセス設定、共有オプション、モニタリング、ディスカッション アーカイブは、管理コンソールを使用して管理します。グループ設定について詳しくは、管理者向けヘルプセンターをご覧ください。
グループ、メッセージの送信 迷惑メールやメールの不正使用を防ぐため、Google では外部の宛先に一度に送信できるメッセージの数を制限しています。グループ宛てにメールを送信する場合、各外部メンバーは 1 人の受信者としてカウントされます。詳しくは、メールの送信制限Gmail ユーザーへのメールがブロックされたり迷惑メール扱いされたりしないようにする をご覧ください。
グループ、NDR メッセージの送信 「バウンスメール」とも呼ばれる配信不能レポート(NDR)をグループに送信または転送することはできません。
ユーザーが作成したグループ、制限事項 ユーザーが作成したグループの上限については、管理ヘルプセンターをご覧ください。
組織部門、サービスのオン/オフ 管理コンソールを使用して、組織部門に対するサービスの有効と無効の設定を管理します。
パスワード 任意の文字の組み合わせを使用できます。8 文字以上で入力してください。最大長は 100 文字です。
写真 このバージョンの API では、写真はユーザーの最新の Google プロフィール写真です。
ユーザー名 ユーザー名には英字(a ~ z)、数字(0 ~ 9)、ダッシュ(-)、アンダースコア(_)を使用できますが、Google Workspace ではドットまたはピリオド(.)が認識されます。これは Gmail とは異なります。ユーザー名に等号(=)、角かっこ(<、>)、または複数のピリオド(.)を連続して使用することはできません。詳しくは、管理者向けヘルプセンターをご覧ください。
ユーザー名、名前の変更 名前を変更すると、記憶されているチャットの招待状はすべて破棄されます。ユーザーは、友だちとのチャットの許可をもう一度リクエストする必要があります。古いユーザー名はメール エイリアスとして保持され、メール転送設定によるメールの継続的な配信が保証され、新しいユーザー名として使用できなくなります。ユーザー名を変更した場合の影響に関する重要な詳細については、管理者向けヘルプセンターをご覧ください。名前を変更した後にメール エイリアスを削除するには、「ユーザーのエイリアスを削除する」操作を使用します。
複数のドメインのユーザー Google Workspace アカウントには、任意のドメインを含めることができます。複数ドメインのアカウントを使用すると、あるドメインのユーザーが他のアカウント ドメインのユーザーとサービスを共有できます。複数のドメイン コンポーネントは次のとおりです。
  • プライマリ ドメイン -- アカウントのプライマリ ドメインとは、Google Workspace 利用規約に同意した管理者のドメインです。このドメインは、最上位の組織部門のアカウント レベルにあります。Google Workspace アカウントにお申し込みの際は、プライマリ ドメインにビジネスのドメインを使用し、その他のドメインは試験運用やテストなどの特別な用途のために予約することをおすすめします。
    • すべての特権管理者がアカウント全体を管理できます。
    • この API では、Google Workspace アカウントのプライマリ ドメインの変更や移動はできません。ただし、API でユーザーのアカウントの名前を変更し、メールアドレスを別のドメインに変更することは可能です。
    • Google Workspace アカウントの場合、プライマリ ドメインの所有権は 21 日以内に確認する必要があります。追加ドメインの場合は、ユーザーのプライマリ メールアドレスにドメインを使用する前に、ドメインの所有権を確認する必要があります。このような場合、21 日間の猶予期間は適用されません。
    • このバージョンの API では、プライマリ ドメインの設定は、Google Workspace サービスへのユーザー アクセスを除き、アカウントに関連付けられているすべてのドメインに適用されます。
  • 追加のアカウント ドメイン -- プライマリ ドメインとアカウントの設定が完了したら、アカウントにドメインを追加できます。追加ドメインの場合は、このドメインを設定するときに、ユーザーのメインのメールアドレスにドメインを使用する前に、所有権を確認してください。
  • ユーザーのホーム ドメイン -- ユーザーのプライマリ メールアドレスで使用されるドメインが、ユーザーのホーム ドメインです。このドメインは、プライマリ ドメインを含む、アカウント内の任意のドメインになります。
複数ドメインの最新の制限事項については、複数ドメインの制限をご覧ください。これには、ドメイン エイリアスやアカウントの統合に関する情報が含まれます。
警告、グループ メンバー GROUP_CANNOT_CONTAIN_CYCLE - API では、グループ メンバーを循環できません。たとえば、group1 が group2 のメンバーである場合、group2 を group1 のメンバーにすることはできません。