Limita frequenza delle chiamate per sottoscrizione
SI APPLICA A: Tutti i livelli di Gestione API
Il criterio rate-limit
impedisce picchi d'uso dell'API per ogni sottoscrizione impostando la frequenza delle chiamate su un numero specificato per un periodo di tempo specificato. Quando viene superata la frequenza delle chiamate, il chiamante riceve il codice di stato della risposta 429 Too Many Requests
.
Per comprendere la differenza tra limiti di velocità e quote, vedere Limiti di frequenza e quote.
Attenzione
A causa della natura distribuita dell'architettura di limitazione delle richieste, la limitazione della frequenza non è mai completamente accurata. La differenza tra le richieste configurate e il numero attuale di richieste consentite varia in base al volume e alla frequenza delle richieste, alla latenza del back-end e ad altri fattori.
Nota
Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.
Istruzione del criterio
<rate-limit calls="number" renewal-period="seconds" retry-after-header-name="custom header name, replaces default 'Retry-After'"
retry-after-variable-name="policy expression variable name"
remaining-calls-header-name="header name"
remaining-calls-variable-name="policy expression variable name"
total-calls-header-name="header name">
<api name="API name" id="API id" calls="number" renewal-period="seconds" >
<operation name="operation name" id="operation id" calls="number" renewal-period="seconds" />
</api>
</rate-limit>
Attributi
Attributo | Descrizione | Richiesto | Valore predefinito |
---|---|---|---|
calls | Il numero totale massimo di chiamate consentite durante l'intervallo di tempo specificato in renewal-period . Le espressioni di criteri non sono consentite. |
Sì | N/D |
renewal-period | Durata in secondi della finestra temporale scorrevole durante la quale il numero di richieste consentite non deve superare il valore specificato in calls . Valore massimo consentito: 300 secondi. Le espressioni di criteri non sono consentite. |
Sì | N/D |
retry-after-header-name | Nome di un'intestazione di risposta personalizzata il cui valore è l'intervallo di ripetizione dei tentativi consigliato in secondi dopo il superamento della frequenza di chiamata. Le espressioni di criteri non sono consentite. | No | Retry-After |
retry-after-variable-name | Nome di una variabile che archivia l'intervallo di ripetizione dei tentativi consigliato in secondi dopo il superamento della frequenza di chiamate specificato. Le espressioni di criteri non sono consentite. | No | N/D |
remaining-calls-header-name | Nome di un'intestazione di risposta il cui valore dopo ogni esecuzione dei criteri è il numero di chiamata rimanenti consentite per l'intervallo di tempo specificato in renewal-period . Le espressioni di criteri non sono consentite. |
No | N/D |
remaining-calls-variable-name | Nome di una variabile che dopo ogni esecuzione dei criteri archivia il numero di chiamate rimanenti consentite per l'intervallo di tempo specificato in renewal-period . Le espressioni di criteri non sono consentite. |
No | N/D |
total-calls-header-name | Nome di un'intestazione di risposta il cui valore è il valore specificato in calls . Le espressioni di criteri non sono consentite. |
No | N/D |
Elementi
Elemento | Descrizione | Richiesto |
---|---|---|
api | Aggiungere almeno uno di questi elementi per imporre un limite di frequenza delle chiamate alle API all'interno del prodotto. I limiti alla frequenza delle chiamate API e al prodotto vengono applicati in modo indipendente. È possibile fare riferimento all'API tramite name o id . Se vengono specificati entrambi gli attributi, verrà usato id e name verrà ignorato. |
No |
operation (operazione) | Aggiungere almeno uno di questi elementi per imporre un limite di frequenza delle chiamate alle operazioni all'interno di un'API. I limiti alla frequenza delle chiamate alle operazioni, all'API e al prodotto vengono applicati in modo indipendente. È possibile fare riferimento all'operazione tramite name o id . Se vengono specificati entrambi gli attributi, verrà usato id e name verrà ignorato. |
No |
attributi api
Attributo | Descrizione | Richiesto | Valore predefinito |
---|---|---|---|
name | Il nome dell'API a cui si desidera applicare il limite di frequenza. | È necessario specificare name o id . |
N/D |
id | ID dell'API a cui si desidera applicare il limite di frequenza. | È necessario specificare name o id . |
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. |
Sì | N/D |
renewal-period | Durata in secondi della finestra temporale scorrevole durante la quale il numero di richieste consentite non deve superare il valore specificato in calls . Valore massimo consentito: 300 secondi. Le espressioni di criteri non sono consentite. |
Sì | N/D |
attributi dell'operazione
Attributo | Descrizione | Richiesto | Valore predefinito |
---|---|---|---|
name | Il nome dell'operazione a cui si desidera applicare il limite di frequenza. | È necessario specificare name o id . |
N/D |
id | ID dell'operazione a cui si desidera applicare il limite di frequenza. | È necessario specificare name o id . |
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. |
Sì | N/D |
renewal-period | Durata in secondi della finestra temporale scorrevole durante la quale il numero di richieste consentite non deve superare il valore specificato in calls . Valore massimo consentito: 300 secondi. Le espressioni di criteri non sono consentite. |
Sì | N/D |
Utilizzo
- Sezioni del criterio: inbound
- Ambiti del criterio: prodotto, API, operazione
- Gateway: classico, v2, consumo, self-hosted, area di lavoro
Note sull'utilizzo
- Questo criterio può essere impiegato una sola volta per ogni definizione di criterio.
- Questo criterio viene applicato solo quando si accede a un'API usando una chiave di sottoscrizione.
- Il numero di limiti di frequenza in un gateway self-hosted possono essere configurati per la sincronizzazione locale (tra le istanze del gateway nei nodi del cluster), ad esempio tramite la distribuzione del grafico Helm per Kubernetes o usando i modelli di distribuzione del portale di Azure. Tuttavia, i conteggi dei limiti di frequenza non vengono sincronizzati con altre risorse del gateway configurate nell'istanza di API Management, incluso il gateway gestito nel cloud. Ulteriori informazioni
Esempio
Nell'esempio seguente il limite di frequenza per sottoscrizione è di 20 chiamate per 90 secondi. Dopo ogni esecuzione dei criteri, le chiamate rimanenti consentite nel periodo di tempo vengono archiviati nella variabile remainingCallsPerSubscription
.
<policies>
<inbound>
<base />
<rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/>
</inbound>
<outbound>
<base />
</outbound>
</policies>
Criteri correlati
Contenuto correlato
Per ulteriori informazioni sull'utilizzo dei criteri, vedere:
- Esercitazione: trasformare e proteggere l'API
- Informazioni di riferimento sui criteri per un elenco completo delle istruzioni dei criteri e delle relative impostazioni
- Espressioni di criteri
- Impostare o modificare criteri
- Riutilizzare le configurazioni dei criteri
- Repository dei frammenti di criteri
- Creare criteri usando Microsoft Copilot in Azure