Condividi tramite


Impostare la quota di utilizzo in base alla chiave

SI APPLICA A: Sviluppatore | Basic | Standard | Premium

Il criterio quota-by-key consente di applicare una quota rinnovabile o permanente per il volume di chiamate e/o per la larghezza di banda, per chiave. La chiave può avere un valore di stringa arbitrario e viene indicata in genere usando un'espressione di criteri. Per specificare le richieste da considerare nella quota, è possibile aggiungere una condizione opzionale di incremento. Se più criteri incrementano lo stesso valore della chiave, quest'ultimo viene incrementato solo una volta per richiesta. Quando viene superata la quota, il chiamante riceve un codice di stato della risposta 403 Forbidden e la risposta include un'intestazione Retry-After il cui valore è l'intervallo di tentativi consigliato in secondi.

Per comprendere la differenza tra limiti di velocità e quote, vedere Limiti di frequenza e quote.

Nota

Quando le risorse di calcolo sottostanti si riavviano nella piattaforma del servizio, API Management può continuare a gestire le richieste per un breve periodo dopo il raggiungimento di una quota.

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Per configurare questo criterio, il portale fornisce un editor guidato basato su moduli. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

<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" />

Attributi

Attributo Descrizione Richiesto Valore predefinito
bandwidth Il numero totale massimo di kilobyte consentiti durante l'intervallo di tempo specificato in renewal-period. Le espressioni di criteri non sono consentite. Devono essere specificati calls, bandwidth o entrambi. N/D
calls Il numero totale massimo di chiamate consentite durante l'intervallo di tempo specificato in renewal-period. Le espressioni di criteri non sono consentite. Devono essere specificati calls, bandwidth o entrambi. N/D
counter-key Chiave da usare per quota policy. Per ogni valore di chiave, viene usato un singolo contatore per tutti gli ambiti in cui è configurato il criterio. Le espressioni di criteri sono consentite. N/D
increment-condition Espressione booleana che specifica se la richiesta deve essere conteggiata ai fini della quota (true). Le espressioni di criteri sono consentite. No N/D
increment-count Numero in base al quale il contatore subisce un incremento per richiesta. Le espressioni di criteri sono consentite. No 1
renewal-period Lunghezza in secondi della finestra fissa dopo la quale viene reimpostata la quota. L'inizio di ogni periodo viene calcolato in relazione a first-period-start. Periodo minimo: 300 secondi. Quando renewal-period è impostato su 0, il periodo viene impostato su infinito. Le espressioni di criteri non sono consentite. N/D
first-period-start Data e ora di inizio per i periodi di rinnovo della quota, nel formato seguente: yyyy-MM-ddTHH:mm:ssZ, come specificato dallo standard ISO 8601. Le espressioni di criteri non sono consentite. No 0001-01-01T00:00:00Z

Utilizzo

Note sull'utilizzo

Il valore dell'attributo counter-key deve essere univoco in tutte le API nell'istanza di API Management se non si desidera condividere il totale tra le altre API.

Esempio

<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>

Per altre informazioni ed esempi su questo criterio, vedere Advanced request throttling with Azure API Management (Limitazione avanzata delle richieste con Gestione API di Azure).

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: