共用方式為


依金鑰設定使用量配額

適用於:開發人員 | 基本 | 標準 | 進階

quota-by-key 原則會以金鑰為單位,強制採用可續訂或有存留期呼叫量與 (或) 頻寬配額。 金鑰可以具有任意字串值,而且通常會使用原則運算式來提供。 可以新增選擇性增量條件,以指定哪些要求應該計入配額。 如果多個原則會使相同的金鑰值遞增,該值址會針對每個要求遞增一次。 超過配額時,呼叫者會收到 403 Forbidden 回應狀態碼,而回應會包含 Retry-After 標頭,其值為以秒為單位的建議重試間隔。

若要瞭解速率限制和配額之間的差異,請參閱速率限制和配額

注意

在服務平台中重新啟動基礎計算資源時,APIM 可能會在達到配額後持續處理要求一小段時間。

注意

請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 為了協助您設定此原則,入口網站會提供引導式表單型編輯器。 深入了解如何設定或編輯 APIM 原則

原則陳述式

<quota-by-key calls="number"
              bandwidth="kilobytes"
              renewal-period="seconds"
              increment-condition="condition"
              increment-count="number"
              counter-key="key value"
              first-period-start="date-time" />

屬性

屬性 描述 是必要欄位 預設
bandwidth renewal-period 中指定的時間週期內允許的 KB 總數上限。 不允許使用原則運算式。 必須指定 callsbandwidth,或同時指定兩者。 N/A
通話 renewal-period 中指定的時間週期內允許的呼叫總數上限。 不允許使用原則運算式。 必須指定 callsbandwidth,或同時指定兩者。 N/A
counter-key 要用於 quota policy 的金鑰。 針對每個索引鍵值,會針對原則設定的所有範圍使用單一計數器。 允許使用原則運算式。 Yes N/A
increment-condition 此布林運算式指定要求是否應該計入配額 (true)。 允許使用原則運算式。 No N/A
increment-count 依每個要求增加的計數器數目。 允許使用原則運算式。 No 1
renewal-period 配額重設之後,固定視窗的長度 (以秒為單位)。 每個期間的開頭都是相對於 first-period-start 來計算。 最短期間:300 秒。 當 renewal-period 設定為 0 時,期間會設定為無限。 不允許使用原則運算式。 Yes N/A
first-period-start 配額更新期間的開始日期和時間,格式為:yyyy-MM-ddTHH:mm:ssZ,如 ISO 8601 標準所指定。 不允許使用原則運算式。 No 0001-01-01T00:00:00Z

使用方式

使用注意事項

如果您不想在其他 API 之間共用總計,則 counter-key 屬性值在 API 管理執行個體中的全部 API 之間必須是唯一的。

範例

<policies>
    <inbound>
        <base />
        <quota-by-key calls="10000" bandwidth="40000" renewal-period="3600"
                      increment-condition="@(context.Response.StatusCode >= 200 && context.Response.StatusCode < 400)"
                      counter-key="@(context.Request.IpAddress)" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

如需此原則範例的詳細資訊,請參閱以 Azure API 管理進行進階要求節流

如需使用原則的詳細資訊,請參閱: