すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:key-rate-limit

最終更新日:Jan 08, 2025

key-rate-limit プラグインは、特定のキー値に基づいてスロットリングを実装します。キー値は、URL パラメーターまたは HTTP リクエストヘッダーから取得できます。このトピックでは、key-rate-limit プラグインを設定する方法について説明します。

プラグインの種類

スロットリングプラグイン。

フィールド

名前

データ型

必須

デフォルト値

説明

limit_by_header

string

いいえ(limit_by_header または limit_by_param を設定する必要があります。)

-

スロットリングのキー値が取得される HTTP リクエストヘッダー。

limit_by_param

string

いいえ(limit_by_header または limit_by_param を設定する必要があります。)

-

スロットリングのキー値が取得される URL パラメーター。

limit_keys

オブジェクトの配列

はい

-

キー値が一致した後のスロットリング回数。

次の表は、limit_keys フィールドの設定項目について説明しています。

名前

データ型

必須

デフォルト値

説明

key

string

はい

-

リクエストの照合に使用されるキー値。

query_per_second

number

いいえ(query_per_secondquery_per_minutequery_per_hour、または query_per_day を設定する必要があります。)

-

1 秒あたりに許可されるリクエスト数。

query_per_minute

number

いいえ(query_per_secondquery_per_minutequery_per_hour、または query_per_day を設定する必要があります。)

-

1 分あたりに許可されるリクエスト数。

query_per_hour

number

いいえ(query_per_secondquery_per_minutequery_per_hour、または query_per_day を設定する必要があります。)

-

1 時間あたりに許可されるリクエスト数。

query_per_day

number

いいえ(query_per_secondquery_per_minutequery_per_hour、または query_per_day を設定する必要があります。)

-

1 日あたりに許可されるリクエスト数。

設定例

  • リクエストヘッダー x-ca-key からのキー値に基づいてスロットリングを実行します。

    limit_by_header: x-ca-key
    limit_keys:
    - key: 102234
      query_per_second: 10
    - key: 308239
      query_per_hour: 10
  • リクエストパラメーター apikey からのキー値に基づいてスロットリングを実行します。

    limit_by_param: apikey
    limit_keys:
    - key: 9a342114-ba8a-11ec-b1bf-00163e1250b5
      query_per_second: 10
    - key: a6a6d7f2-ba8a-11ec-bec2-00163e1250b5
      query_per_minute: 100
  • ルートまたはドメイン名に対してスロットリングを有効にします。

    次のプラグイン設定を route-a ルートと route-b ルートに適用します。

      limit_by_header: x-ca-key
      limit_keys:
      - key: 102234
        query_per_second: 10

    次のプラグイン設定を *.example.com ドメイン名と test.com ドメイン名に適用します。

      limit_by_header: x-ca-key
      limit_keys:
      - key: 102234
        query_per_second: 100
    説明
    • この例では、route-a ルートと route-b ルートは、ゲートウェイルートの作成時に指定されたルートです。クライアントリクエストがルートのいずれかと一致する場合、一致したルートに設定されているルールが有効になります。

    • この例では、*.example.com ドメイン名と test.com ドメイン名は、リクエスト内のドメイン名と照合するために使用されます。クライアントリクエストがドメイン名のいずれかと一致する場合、一致したドメイン名に設定されているルールが有効になります。

    • 設定したルールは順番に有効になります。最初のルールが一致すると、後続のルールは無視されます。