次の方法で共有


コンカレンシーを制限する

適用対象: すべての API Management レベル

limit-concurrency ポリシーは、含まれているポリシーがいずれかの時点で指定された数を超える要求によって実行されないようにします。 その数を超えると、新しい要求は 429 Too Many Requests (要求が多すぎます) のステータス コードですぐに失敗します。

注意事項

スロットリングのアーキテクチャは分散型の性質のため、レートの制限は完全に正確ではありません。 許可される要求の構成された数と実際の数の差異は、要求のボリュームとレート、バックエンドの待ち時間、およびその他の要因によって異なります。

Note

ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。

ポリシー ステートメント

<limit-concurrency key="expression" max-count="number">
        <!— nested policy statements -->
</limit-concurrency>

属性

属性 説明 必要 Default
key 文字列。 コンカレンシー スコープを指定します。 複数のポリシーで共有できます。 ポリシー式を使用できます。 はい 該当なし
max-count 整数。 ポリシーに入力できる要求の最大数を指定します。 ポリシー式は使用できません。 はい 該当なし

使用法

使用上の注意

  • リージョンに複数の容量ユニットがデプロイされている場合、API Management によって適用される要求の最大数は少なくなります。

次の例は、コンテキスト変数の値に基づいてバックエンドに転送される要求の数を制限する方法を示しています。

<policies>
  <inbound>…</inbound>
  <backend>
    <limit-concurrency key="@((string)context.Variables["connectionId"])" max-count="3">
      <forward-request timeout="120"/>
    </limit-concurrency>
  </backend>
  <outbound>…</outbound>
</policies>

ポリシーに対する処理の詳細については、次のトピックを参照してください。