Cloud Endpoints fornisce quote che ti consentono di controllare la frequenza con cui le applicazioni possono chiamare la tua API. L'impostazione di una quota ti consente di specificare limiti di utilizzo per proteggere l'API da un numero eccessivo di richieste da parte delle applicazioni chiamanti. Le richieste eccessive potrebbero essere state causate da un semplice errore ortografico o da un sistema progettato in modo inefficiente che effettua chiamate non necessarie alla tua API. Indipendentemente dalla causa, il blocco del traffico da una fonte quando raggiunge un determinato livello è necessario per il corretto funzionamento complessivo della tua API. Impostando una quota, ti assicuri che un'applicazione non possa influire negativamente su altre applicazioni che utilizzano la tua API.
Questa pagina fornisce una panoramica delle funzionalità principali fornite dalle quote.
Le richieste sono legate al progetto del consumatore
Dopo aver configurato una quota, Endpoints monitora il numero di richieste al minuto per progetto Google Cloud consumer. Ogni applicazione che chiama la tua API deve:
- Avere un progetto Google Cloud.
- Hanno abilitato la tua API nel loro progetto Google Cloud.
- Invia una chiave API. con ogni richiesta alla tua API. In questo modo, Endpoints può identificare il progetto Google Cloud a cui è associata l'applicazione chiamante e incrementare il contatore delle richieste per il progetto Google Cloud.
Per informazioni sulla configurazione di una chiave API, consulta quanto segue:
- Java: limitazione dell'accesso all'API con le chiavi API
- Python: limitazione dell'accesso all'API con le chiavi API
Puoi chiedere ai tuoi utenti dell'API di creare i propri progetti nella console Google Cloud oppure puoi crearli per loro. Poiché Endpoints applica le quote per progetto, devi avere un progetto per ogni consumatore di API.
Limita il numero di richieste al minuto
Impostando una quota, puoi limitare il numero di richieste al minuto per l'intera API o solo per metodi specifici. Se il codice client di un progetto consumer supera il limite che hai configurato, la richiesta viene rifiutata prima di raggiungere la tua API e viene restituito un codice di stato HTTP 429 too many
requests
. Le applicazioni chiamanti dovranno gestire il codice di stato 429
e utilizzare il backoff exponenciale o un'altra logica di ripetizione per ridurre la frequenza delle chiamate alla tua API.
Configura una o più quote
Puoi configurare una o più quote con nome e specificare un limite di frequenza diverso per ciascuna quota. Ad esempio, potresti avere alcuni metodi nell'API che richiedono molte risorse (ad esempio un metodo che esegue una query complessa e restituisce un elenco di risultati di grandi dimensioni) e altri metodi rapidi e leggeri. Ti consigliamo di configurare due quote con limiti di frequenza diversi e di associare i metodi che richiedono molte risorse a una quota e i metodi leggeri all'altra quota.
Configurare un costo
Quando associ un metodo a una quota, specifichi sempre un costo per la richiesta. In questo modo, metodi diversi possono consumare la stessa quota a velocità diverse. Puoi utilizzare i costi come alternativa alla configurazione di quote diverse. Ad esempio, supponiamo di configurare una quota con un limite di 1000 richieste al minuto. Per i metodi leggeri, configuri un costo pari a 1, il che significa che i client possono chiamare i metodi leggeri 1000 volte al minuto. Per i metodi che richiedono molte risorse, puoi configurare un costo pari a 2, il che significa che ogni volta che il client chiama il metodo, il contatore delle richieste viene incrementato di 2 fino a raggiungere il limite di 1000. In pratica, questo limita i metodi che richiedono molte risorse a 500 richieste al minuto.
Sostituisci la quota configurata
La pagina Endpoints > Services mostra la quota configurata per ogni metodo dell'API. Se necessario, puoi eseguire l'override del limite configurato per un progetto consumer specifico. Per impostare un'override, devi inserire il numero del progetto consumer nella pagina Endpoint > Servizi. Se non hai accesso al progetto consumer che vuoi eseguire l'override, devi contattare qualcuno che ha accesso per ottenere il numero del progetto.