Cloud Endpoints の割り当てを使用して、アプリケーションが API を呼び出せるペース(レート)を制御できます。割り当てを設定することで、呼び出し元アプリケーションによる過剰な数のリクエストから API を保護するための使用制限を指定できます。過剰な数のリクエストは、単純な入力ミスや、不必要に API を呼び出す非効率的な設計のシステムが原因で発生する場合があります。こうした原因とは無関係に、API の全体的な正常性を維持するには、ソースからのトラフィックが一定のレベルに達した場合にトラフィックをブロックする必要があります。割り当てを設定することで、あるアプリケーションが、API を使用している他のアプリケーションに悪影響を与えないようにできます。
このページでは、割り当てによって実現できる主な機能の概要を示します。
リクエスト数とユーザー プロジェクトの関係
割り当てが設定されると、Endpoints はユーザー プロジェクトごとに 1 分あたりのリクエスト数を追跡します。 Google Cloud API を呼び出す各アプリケーションは、次の条件を満たしている必要があります。
API ユーザーに Google Cloud コンソールで独自のプロジェクトを作成させることも、管理者が API ユーザーのためにプロジェクトを作成することもできます。Endpoints ではプロジェクトごとに割り当てが適用されるため、API ユーザーごとに 1 つのプロジェクトが必要です。
1 分あたりのリクエスト数を制限する
割り当てを設定することで、API 全体または特定のメソッドに対する 1 分あたりのリクエスト数の上限を設定できます。構成した上限値をユーザー プロジェクトのクライアント コードが超えた場合、リクエストは API に到達する前に拒否され、「429 too many
requests」という HTTP ステータス コードが返されます。呼び出し元アプリケーションは、ステータス コード 429 を処理し、指数バックオフやその他の再試行ロジックを使用して、API の呼び出しレートを下げる必要があります。
1 つ以上の割り当てを設定する
名前付きの割り当てをいくつか設定し、割り当てごとに異なるレート制限を指定できます。たとえば、大量のリソースを必要とするメソッド(複雑なクエリを実行して大きな結果リストを返すメソッドなど)と、高速かつ軽量なメソッドが API 内に混在している場合があります。その場合は、レート制限の異なる 2 つの割り当てを設定し、一方の割り当てをリソース消費量の多いメソッドに、他方の割り当てを軽量メソッドに関連付けることができます。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-04-02 UTC。"],[[["Cloud Endpoints uses quotas to control the rate at which applications can call an API, protecting it from excessive requests and ensuring that one application's usage doesn't negatively impact others."],["Quotas are enforced per consumer Google Cloud project, requiring each application to have a project, enable the API, and send an API key for tracking."],["Setting a quota can limit requests per minute for the entire API or specific methods, rejecting requests exceeding the limit with an HTTP 429 status code."],["Multiple named quotas can be configured with different rate limits for resource-intensive and lightweight methods, and costs can be assigned to methods to vary their consumption of the same quota."],["Configured quota limits can be overridden for specific consumer projects via the Endpoints \u003e Services page, allowing for customized limits per project."]]],[]]