割り当て構成は、サービス利用において公正性を達成し予算を守るのに役立ちます。
割り当て設定の動作は次のとおりです。- サービス設定で一連の指標が定義されます。- API 呼び出しでは、quota.metric_rules がメソッドを対応するコストを含む指標にマップします。- quota.limits が実行時の割り当てチェックに使用される指標の制限を定義します。
yaml 形式の割り当て設定の例:
割り当て:
- name: apiWriteQpsPerProject
metric: library.googleapis.com/write_calls
unit: "1/min/{project}" # rate limit for consumer projects
values:
STANDARD: 10000
# The metric rules bind all methods to the read_calls metric,
# except for the UpdateBook and DeleteBook methods. These two methods
# are mapped to the write_calls metric, with the UpdateBook method
# consuming at twice rate as the DeleteBook method.
metricRules:
- selector: "*"
metricCosts:
library.googleapis.com/read_calls: 1
- selector: google.example.library.v1.LibraryService.UpdateBook
metricCosts:
library.googleapis.com/write_calls: 2
- selector: google.example.library.v1.LibraryService.DeleteBook
metricCosts:
library.googleapis.com/write_calls: 1
対応する指標定義:
metrics:
- name: library.googleapis.com/read_calls
displayName: Read requests
metricKind: DELTA
valueType: INT64
- name: library.googleapis.com/write_calls
displayName: Write requests
metricKind: DELTA
valueType: INT64
JSON 表現 | |
---|---|
{ "limits": [ { object( |
フィールド | |
---|---|
limits[] |
サービスの |
metricRules[] |
|
QuotaLimit
QuotaLimit
は、制限タイプに対して指定された期間にわたって適用される特定の制限を定義します。QuotaGroup
内で定義された期間と制限タイプの組み合わせには、多くても 1 つの制限しかありません。
JSON 表現 | |
---|---|
{ "name": string, "description": string, "defaultLimit": string, "maxLimit": string, "freeTier": string, "duration": string, "metric": string, "unit": string, "values": { string: string, ... }, "displayName": string } |
フィールド | |
---|---|
name |
割り当て制限の名前。 名前は指定する必要があり、サービス内で一意でなければなりません。名前には英数字と ' - ' のみを含めることができます。 制限名の最大長は 64 文字です。 |
description |
省略可。この割り当て制限のユーザーに表示可能な詳細な説明。この制限を理解するために、制限の表示名( |
defaultLimit |
指定された期間中に消費できるトークンのデフォルト数。これは、クライアント アプリケーション デベロッパーがプロジェクトのサービスをアクティブ化するときに割り当てるトークンの数です。 0 の値を指定すると、すべてのリクエストがブロックされます。これは、選択したコンシューマに対する割り当てを準備し、他のコンシューマをブロックする場合に使用できます。同様に、-1 の値は無制限の割り当てを示します。他の負の値は許されません。 グループベースの割り当てでのみ使用されます。 |
maxLimit |
指定された期間中に消費できるトークンの最大数。クライアント アプリケーション開発者は、この最大値までデフォルトの制限をオーバーライドできます。指定した場合は、この値をデフォルトの制限値より小さく設定することはできません。指定しなかった場合は、この値はデフォルトの制限値に設定されます。 クライアントが上限のないオーバーライドを適用できるようにするには、無制限の最大割り当てを意味する -1 に設定します。 グループベースの割り当てでのみ使用されます。 |
freeTier |
デベロッパー コンソールに表示される、この制限の中の無料枠の値。無料枠は、請求が有効になっているときに請求額から差し引かれるトークンの数です。このフィールドは、期間が "1d" の制限でのみ、請求対象グループ内で設定できます。それ以外の制限では無効です。このフィールドが設定されていない場合は、デフォルトで、このサービスの無料枠がないことを示す 0 に設定されます。 グループベースの割り当てでのみ使用されます。 |
duration |
テキスト表記によるこの制限の期間。例: "100s"、"24h"、"1d"。1 日より長い期間の場合は、複数の日のみがサポートされます。現時点で、"100s" と "1d" のみがサポートされています。今後、追加サポートが追加される予定です。"0" は無期限であることを示します。 グループベースの割り当てでのみ使用されます。 |
metric |
この割り当て制限が適用される指標の名前。同じ指標の複数の割り当て制限は、実行時にまとめてチェックされます。指標は、サービス設定内で定義する必要があります。 |
unit |
割り当て制限の単位を指定します。[Metric.unit][] と同じ構文が使用されます。サポートされる単位の種類は、割り当てバックエンド システムによって決定されます。 例: * "1/min/{project}" はプロジェクトあたりの 1 分間の割り当てを示します。 注: 単位コンポーネントの順序は重要ではありません。先頭の "1" は指標単位構文に従うために必要です。 |
values |
段階的な制限値。キーと値のペアとして指定する必要があります。指定された単位に許可されるリクエストの最大数である整数値を指定します。現時点で、STANDARD しかサポートされません。
|
displayName |
この制限のユーザーに表示可能な表示名。省略可。設定しなかった場合は、UI が割り当て設定に基づいてデフォルトの表示名を提供します。このフィールドは、構成から生成されたデフォルトの表示名をオーバーライドするために使用できます。 |