DataPower API Gateway のみ

ratelimit

API アセンブリー・フローの任意の時点で 1 つ以上のレート制限、バースト制限、またはカウント制限を適用するには、 ratelimit ポリシーを使用します。 レート制限およびバースト制限は、指定した期間内に API に対して実行される呼び出しの数を制限し、カウント制限は呼び出しの総数について厳密な制限を課します。

ゲートウェイのサポート

表 1. このポリシーをサポートするゲートウェイと、対応するポリシーのバージョンを示す表
ゲートウェイ ポリシーのバージョン
DataPower® API Gateway 2.0.0

2.1.0 (DataPower API Gateway バージョン 10.0.1.0 以降)

2.2.0 (DataPower API Gateway バージョン 10.0.2.0 以降)

2.3.0 (DataPower API Gateway バージョン 10.5.0.0

このトピックでは、 OpenAPI ソースでのポリシーの構成方法について説明します。アセンブリー・ユーザー・インターフェースでのポリシーの構成方法について詳しくは、 レート制限を参照してください。

製品情報

定義されたレート制限、バースト制限、およびカウント制限は、アセンブリー・フロー内の後続のものすべてに適用されます。 例えば、 ratelimit ポリシーが invoke ポリシーの前に配置されていて、 invoke ポリシーによって行われた呼び出しが ratelimit ポリシーによって定義された制限を超えている場合、API 呼び出し自体は失敗します。

ratelimit ポリシーの形式は次のとおりです。
- ratelimit:
    version: version
    title: title
    description: description
    source: rate_and_burst_limit_location
    rate-limit: rate_limits_to_apply
    burst-limit: burst_limits_to_apply

プロパティ-

以下の表では、 ratelimit ポリシーのプロパティーについて説明します。
表 2. ratelimit ポリシーのプロパティー
プロパティー 必須 説明 データ・タイプ
version はい ポリシーのバージョン番号 ストリング
title いいえ ポリシーのタイトル。 ストリング
description いいえ ポリシーの説明。 ストリング
source はい このポリシーに含まれるすべてのレート制限、バースト制限、およびカウント制限の定義の場所。 以下のいずれかの値を指定します。
  • catalog-named: 適用されるレート制限またはバースト制限は、 DataPower API Gateway上の適切な api-collection オブジェクトで定義されます。これは、ゲートウェイ構成内の API Connect カタログを表すオブジェクトです。

    api-collection オブジェクトでレート、バースト、またはカウント制限を構成する方法について詳しくは、 レート、バースト、またはカウント制限の構成を参照してください。

  • plan-named: 適用される制限は、呼び出し元アプリケーションのサブスクライブ先であるプランで定義されているアセンブリー・バースト制限またはアセンブリー・カウント制限です。 プランでアセンブリー・バースト制限およびアセンブリー・カウント制限を構成する方法について詳しくは、 ドラフト製品の編集を参照してください。
    注: plan-named レート制限ポリシーには、以下の条件が適用されます。
    • 制限されている API を含むすべてのプランには、指定されたレート制限が適用されている必要があります。
    • plan-named レート制限ポリシーは、自動生成された製品では使用できません。
  • gateway-named: 適用される制限は、 DataPower API Gateway ゲートウェイ上の apiconnectという名前の apigw オブジェクトで定義されます。

    apigw オブジェクトでレート、バースト、またはカウント制限を構成する方法について詳しくは、 レート、バースト、またはカウント制限の構成を参照してください。

  • plan-default: 適用されるレート制限とバースト制限は、呼び出し元アプリケーションのサブスクライブ先であるプランで構成されているデフォルトの制限です。 デフォルトのプランのレート制限とバースト制限を構成する方法について詳しくは、 ドラフト製品の編集を参照してください。
    注: このオプションを使用しても、設定されている可能性がある自動フロー・レート制限ポリシーが無効になることはなく、レート制限の適用が繰り返される可能性があります。 プリフロー・ポリシーについて詳しくは、 「プリフロー・ポリシーのカスタマイズ」を参照してください。
ストリング
rate-limit はい1 source プロパティーが catalog-namedに設定されている場合、 DataPower API Gateway 構成で定義されているレート制限名のリスト。

1レート制限、バースト制限、またはカウント制限を少なくとも 1 つは指定する必要があります。

ストリング
burst-limit はい2 source プロパティーが catalog-namedに設定されている場合、 DataPower API Gateway 構成で定義されているバースト制限名のリスト。

sourceplan-named に設定されている場合、プランで定義されているアセンブリー・バースト制限の名前のリスト。

2レート制限、バースト制限、またはカウント制限を少なくとも 1 つは指定する必要があります。

ストリング
count-limit はい3 source プロパティーが catalog-namedに設定されている場合、 DataPower API Gateway 構成で定義されているカウント制限名のリスト。

sourceplan-named に設定されている場合、プランで定義されているアセンブリー・カウント制限の名前のリスト。

3レート制限、バースト制限、またはカウント制限を少なくとも 1 つは指定する必要があります。

ストリング
operation いいえ レート制限の場合は、以下のいずれかの値を指定します。
  • consume: このポリシーは、rate-limit プロパティーで指定されたレート制限で定義されている時間間隔内に残される使用可能な要求のバランスを減らします。

    残バランスの削減量は、指定したレート制限で定義される重み式の結果として得られる値です。

  • replenish: このポリシーは、rate-limit プロパティーで指定されたレート制限で定義されている時間間隔内に残される使用可能な要求のバランスを増やします。

    残バランスの増加量は、指定したレート制限で定義される重み式の結果として得られる値です。

    補充操作の目的は、以前のコンシューム操作によって計算された量が多すぎたと判明した場合に、適切な残バランス量を復元することです。 例えば、100 という制限値を持つアセンブリーのレート制限の場合、60 という重みを持つコンシューム操作には 60 の要求が使用され、その時間間隔中に 40 の要求が残ります。 後続の補充操作の重み式によって 15 と計算された場合 (つまり、実際の要求使用量が 45 のみであったと重み式が計算した場合)、補充操作によって残りの要求が 15 だけ増やされ、残バランスが 55 になります。

    補充操作では、許可される残りの要求数を、アセンブリーのレート制限スキームで定義されている元の制限を超える数まで増やすことはできません。 この例では、補充操作で 100 を超える要求を補充することはできません。 重み式が 1 より小さい値に評価されると、補充操作はスキップされます。

    デフォルト値は consumeです。

カウント制限の場合は、以下のいずれかの値を指定します。
  • inc: 現在のカウントが、count-limit プロパティーによって指定されたカウント制限で定義される重み式から得られる値だけ増やされます。
  • dec: 現在のカウントが、count-limit フィールドに指定されているカウント制限で定義される重み式から得られる値だけ減らされます。

デフォルトでは、アセンブリー中に増分された合計量からアセンブリー内で定義された減分操作を減算した値だけ、カウント制限が API アセンブリーの最後に減分されます。 アセンブリーの特定のポイントで減分が行われるようにしたい場合を除き、明示的に減分操作を定義する必要はありません。 ただし、カウント制限の構成で自動減分機能が明示的に無効にされている場合は、対応する減分操作を含める必要があります。そうしないと、カウント制限に達した場合に、以降のすべての呼び出しがブロックされます。 カウント制限の構成について詳しくは、 レート制限、バースト制限、またはカウント制限の構成を参照してください。

デフォルト値は incです。

バースト制限の場合、可能な値は consume のみです。つまり、適用される制限は、burst-limit フィールドで指定されたバースト制限で定義される制限です。

ストリング


- ratelimit:
    version: 2.0.0
    title: Apply rate and burst limits
    source: catalog-named
    rate-limit:
      - 30perMinute
      - 2000per3Hours
    burst-limit:
      - 5per10Seconds