制限と割り当ては、自動化されたプロセスが 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 アカウントごとに適用されます。この上限を引き上げることはできません。 |
指数バックオフの実装
指数バックオフは、失敗したリクエストをクライアントが再試行する際、失敗するごとに次の再試行までの待ち時間を増やしていく処理です。これは、ネットワーク アプリケーションに使われる標準的な エラー処理方法です。指数バックオフを使用すると、帯域幅の使用効率が向上し、正常なレスポンスを受け取るために必要なリクエスト数が削減され、同時実行環境におけるリクエストのスループットが最大化されます。
単純な指数バックオフを実装するフローを次に示します。
- 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 個に制限されています。その他のエディションでは、グループの数に制限はありません。 |
グループ、グループあたりのメンバー数 | 従来の Free Edition アカウントでは、グループに 100 人までのメンバーを含めることができます。その他のエディションでは、グループのメンバー数に制限はありません。 ユーザーあたりのグループ メンバーの上限については、Google グループのポリシーと制限についてをご覧ください。 |
maxResults クエリ文字列 | API から以下が返されます。
|
複数のドメイン、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 アカウントには、任意のドメインを含めることができます。複数ドメインのアカウントを使用すると、あるドメインのユーザーが他のアカウント ドメインのユーザーとサービスを共有できます。複数のドメイン コンポーネントは次のとおりです。
|
警告、グループ メンバー | GROUP_CANNOT_CONTAIN_CYCLE - API では、グループ メンバーを循環できません。たとえば、group1 が group2 のメンバーである場合、group2 を group1 のメンバーにすることはできません。 |