キーレートリミットプラグインは、URL パラメーターまたは HTTP リクエストヘッダーから取得した特定のキーの値に基づいてリクエストをスロットリングします。
プラグインの種類
スロットリングプラグインです。
フィールド
|
フィールド |
データ型 |
必須 |
デフォルト値 |
説明 |
|
limit_by_header |
文字列 |
いいえ、 |
- |
スロットリングのキー値を提供する HTTP リクエストヘッダー。 |
|
limit_by_param |
文字列 |
いいえ、 |
- |
スロットリングのキー値を提供する URL パラメーター。 |
|
limit_keys |
オブジェクトの配列 |
はい |
- |
特定のキー値に対するレート制限ルール。 |
limit_keys オブジェクトのフィールド:
|
設定項目 |
データ型 |
必須 |
デフォルト値 |
説明 |
|
key |
文字列 |
はい |
- |
受信リクエストと照合する値。 |
|
query_per_second |
数値 |
いいえ、 |
- |
1 秒あたりの最大リクエスト数。 |
|
query_per_minute |
数値 |
いいえ、 |
- |
1 分あたりの最大リクエスト数。 |
|
query_per_hour |
数値 |
いいえ、 |
- |
1 時間あたりの最大リクエスト数。 |
|
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 -
URL パラメーター
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は、リクエストのドメイン名と照合されます。リクエストがこれらのドメイン名のいずれかに一致する場合、対応するルールが適用されます。 -
ルールは設定された順序で評価されます。最初のルールが一致すると、後続のルールは無視されます。
-