Richieste di limitazione (della larghezza di banda della rete) alle REST API per un throughput migliore in Gateway API
È possibile configurare limitazioni e quote per le API per proteggerle da eventuali troppe richieste. Sia le limitazioni che le quote sono applicate sulla base del massimo sforzo e dovrebbero essere considerate come obbiettivi piuttosto che massimali garantiti delle richieste.
API Gateway limita la larghezza di banda della rete delle richieste nell'API mediante l'algoritmo di token bucket, dove un token rappresenta una richiesta. Nello specifico, API Gateway esamina il tasso e i picchi di invio di richieste per tutte le API dell'account, per regione. Nell'algoritmo di bucket token, un picco può consentire il superamento predefinito di tali limiti, ma anche altri fattori possono causare il superamento dei limiti in alcuni casi.
Quando le richieste inviate superano i limiti impostati per il tasso a regime e per i limiti di picco, API Gateway inizia a limitare le richieste. I clienti potrebbero ricevere risposte agli errori 429 Too Many Requests a questo punto. Quando rileva queste eccezioni, il client può reinviare le richieste non riuscite in modo da limitare la velocità.
In qualità di sviluppatore dell'API, puoi impostare i limiti di destinazione per le singole fasi o i singoli metodi dell'API per migliorare le prestazioni generali in tutte le API dell'account. In alternativa, puoi abilitare i piani di utilizzo per impostare limitazioni sugli invii di richieste al client in base a quote e tassi di richiesta specificati.
Argomenti
Come sono applicate le impostazioni del limite del throttling in API Gateway
Prima di configurare le impostazioni di limitazione (della larghezza di banda della rete) e quota per l'API, è utile capire quali sono i tipi di impostazioni relative alla limitazione (della larghezza di banda della rete) e come vengono applicate da Gateway API.
Amazon API Gateway fornisce due tipi base di impostazioni correlate alle impostazioni delle limitazioni:
-
I limiti di limitazione (della larghezza di banda della rete) di AWS sono applicati su tutti gli account e i client di una Regione. Queste impostazioni del limite servono a evitare di sovraccaricare l'API, e di conseguenza il tuo account, con troppe richieste. Questi limiti sono fissati da AWS e non possono essere modificati dal cliente.
-
I limiti per account vengono applicati a tutte le API di un account in una regione specificata. Il limite del tasso a livello di account può essere aumentato - sono possibili limiti più elevati con API con timeout più brevi e payload più piccoli. Per richiedere un aumento dei limiti di limitazione a livello di account per Regione, contatta il Centro assistenza AWS
. Per ulteriori informazioni, consulta Quote Gateway Amazon API. Tieni presente che questi limiti non possono essere più alti dei limiti di throttling AWS. -
I limiti di throttling per API e per fase vengono applicati a livello di metodo API per una fase. È possibile configurare le stesse impostazioni per tutti i metodi o configurare impostazioni di throttling diverse per ciascun metodo. Ricorda che questi limiti non possono essere più alti dei limiti di throttling di AWS.
-
Limiti di throttling per client vengono applicati ai client che utilizzano le chiavi API associate al piano di utilizzo come identificatore client. Ricorda che questi limiti non possono essere più alti dei limiti per account.
Le impostazioni correlate alla limitazione (della larghezza di banda della rete) di Gateway API vengono applicate nell'ordine seguente:
-
Limiti di throttling per metodo o per client impostati per una fase API in un piano di utilizzo
-
Limitazione regionale di AWS
Limitazione a livello di account per regione
Per impostazione predefinita, API Gateway limita il numero di richieste con stato costante al secondo (RPS) per tutte le API all'interno di un account AWS, per Regione. Limita anche i picchi, ovvero la dimensione massima del bucket, per tutte le API di un account AWS, per regione. In API Gateway, il limite dei picchi rappresenta il numero massimo di invii di richieste che API Gateway può gestire prima di restituire risposte di errore 429 Too Many Requests. Per ulteriori informazioni sulla limitazione delle quote, vedere Quote Gateway Amazon API.
Configurazione del throttling a livello di API e destinazioni delle limitazioni a livello di fase in un piano di utilizzo
In un piano di utilizzo puoi impostare una destinazione della limitazione (della larghezza di banda della rete) per tutti i metodi a livello di API o di fase. È possibile specificare una velocità di limitazione (della larghezza di banda della rete)ovvero la frequenza, in richieste al secondo, con cui i token vengono aggiunti al bucket di token. È anche possibile specificare un burst di limitazione (della larghezza di banda della rete), ovvero la capacità del bucket di token.
È possibile utilizzare AWS CLI, gli SDK e la AWS Management Console per creare un piano di utilizzo. Per ulteriori informazioni su come creare un piano di utilizzo, consulta Piani di utilizzo e chiavi API per REST API in Gateway API.
Configurazione delle destinazioni di limitazione della larghezza di banda della rete a livello di fase
Puoi utilizzare l'AWS CLI, gli SDK e la AWS Management Console per creare destinazioni di limitazione della larghezza di banda della rete a livello di fase.
Per ulteriori informazioni su come utilizzare la AWS Management Console per creare destinazioni di limitazione (della larghezza di banda della rete) a livello di fase, consulta Modifica delle impostazioni di fase. Per ulteriori informazioni su come utilizzare AWS CLI per creare destinazioni di limitazione (della larghezza di banda della rete) a livello di fase, consulta create-stage.
Configurazione delle destinazioni della limitazione a livello di metodo in un piano di utilizzo
Puoi impostare destinazioni della limitazione aggiuntive a livello di metodo in Usage Plans (Piani di utilizzo) come mostrato in Creazione di un piano di utilizzo. Nella console API Gateway, questi vengono impostati specificando Resource=, <resource>Method= nell'impostazione Configure Method Throttling (Configurazione del throttling). Ad esempio, per l'esempio PetStore, puoi specificare <method>Resource=/pets, Method=GET.