割り当て

割り当て構成は、サービス利用において公正性を達成し予算を守るのに役立ちます。

割り当て設定の動作は次のとおりです。- サービス設定で一連の指標が定義されます。- 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(QuotaLimit)
    }
  ],
  "metricRules": [
    {
      object(MetricRule)
    }
  ]
}
フィールド
limits[]

object(QuotaLimit)

サービスの QuotaLimit 定義のリスト。

metricRules[]

object(MetricRule)

MetricRule 定義のリスト。それぞれが、選択されたメソッドと 1 つ以上の指標とのマッピングを定義します。

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

string

割り当て制限の名前。

名前は指定する必要があり、サービス内で一意でなければなりません。名前には英数字と ' - ' のみを含めることができます。

制限名の最大長は 64 文字です。

description

string

省略可。この割り当て制限のユーザーに表示可能な詳細な説明。この制限を理解するために、制限の表示名(displayName を参照)よりも多くのコンテキストが必要な場合にのみ使用する必要があります。

defaultLimit

string (int64 format)

指定された期間中に消費できるトークンのデフォルト数。これは、クライアント アプリケーション デベロッパーがプロジェクトのサービスをアクティブ化するときに割り当てるトークンの数です。

0 の値を指定すると、すべてのリクエストがブロックされます。これは、選択したコンシューマに対する割り当てを準備し、他のコンシューマをブロックする場合に使用できます。同様に、-1 の値は無制限の割り当てを示します。他の負の値は許されません。

グループベースの割り当てでのみ使用されます。

maxLimit

string (int64 format)

指定された期間中に消費できるトークンの最大数。クライアント アプリケーション開発者は、この最大値までデフォルトの制限をオーバーライドできます。指定した場合は、この値をデフォルトの制限値より小さく設定することはできません。指定しなかった場合は、この値はデフォルトの制限値に設定されます。

クライアントが上限のないオーバーライドを適用できるようにするには、無制限の最大割り当てを意味する -1 に設定します。

グループベースの割り当てでのみ使用されます。

freeTier

string (int64 format)

デベロッパー コンソールに表示される、この制限の中の無料枠の値。無料枠は、請求が有効になっているときに請求額から差し引かれるトークンの数です。このフィールドは、期間が "1d" の制限でのみ、請求対象グループ内で設定できます。それ以外の制限では無効です。このフィールドが設定されていない場合は、デフォルトで、このサービスの無料枠がないことを示す 0 に設定されます。

グループベースの割り当てでのみ使用されます。

duration

string

テキスト表記によるこの制限の期間。例: "100s"、"24h"、"1d"。1 日より長い期間の場合は、複数の日のみがサポートされます。現時点で、"100s" と "1d" のみがサポートされています。今後、追加サポートが追加される予定です。"0" は無期限であることを示します。

グループベースの割り当てでのみ使用されます。

metric

string

この割り当て制限が適用される指標の名前。同じ指標の複数の割り当て制限は、実行時にまとめてチェックされます。指標は、サービス設定内で定義する必要があります。

unit

string

割り当て制限の単位を指定します。[Metric.unit][] と同じ構文が使用されます。サポートされる単位の種類は、割り当てバックエンド システムによって決定されます。

例: * "1/min/{project}" はプロジェクトあたりの 1 分間の割り当てを示します。

注: 単位コンポーネントの順序は重要ではありません。先頭の "1" は指標単位構文に従うために必要です。

values

map (key: string, value: string (int64 format))

段階的な制限値。キーと値のペアとして指定する必要があります。指定された単位に許可されるリクエストの最大数である整数値を指定します。現時点で、STANDARD しかサポートされません。

"key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

displayName

string

この制限のユーザーに表示可能な表示名。省略可。設定しなかった場合は、UI が割り当て設定に基づいてデフォルトの表示名を提供します。このフィールドは、構成から生成されたデフォルトの表示名をオーバーライドするために使用できます。