Come posso evitare gli errori di limitazione delle API Route 53?

3 minuti di lettura
0

Ricevo errori di limitazione delle API in Amazon Route 53.

Breve descrizione

Quando esegui chiamate API in blocco a Route 53, potresti ricevere un errore HTTP 400 (richiesta non valida).

Un'intestazione della risposta con il valore dell'elemento Codice impostato su Limitazione e un valore dell'elemento Messaggio impostato su Frequenza superata indica una limitazione della frequenza. La limitazione della frequenza si verifica quando il numero di richieste API è superiore al limite rigido di cinque richieste al secondo, per account.

Se Route 53 non riesce a elaborare la richiesta prima di quella successiva per la stessa zona ospitata, rifiuta le richieste successive con un altro errore HTTP 400. L'intestazione della risposta contiene entrambi i seguenti elementi:

  • Un elemento Codice con un valore PriorRequestNotComplete
  • Un elemento Messaggio con un valore la richiesta è stata rifiutata perché Route 53 stava ancora elaborando una richiesta precedente.

Le chiamate API degli utenti di AWS Identity and Access Management (AWS IAM) nello stesso account vengono conteggiate ai fini della limitazione della frequenza globale per l'account. Le chiamate API di questi utenti IAM influiscono anche sulle chiamate API effettuate dalla Console di gestione AWS.

Risoluzione

Nota: se visualizzi errori durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

Per evitare la limitazione della frequenza, utilizza uno dei seguenti metodi:

Richieste in batch

Per ridurre le chiamate API, utilizza AWS CLI o il tuo SDK preferito per raggruppare singole operazioni dello stesso tipo in un'unica operazione batch di modifiche.

Ad esempio, effettua richieste CREATE, DELETE o UPSERT (aggiornare e inserire) per diversi record con un'unica operazione batch. Utilizza il comando change-resource-record-sets in AWS CLI per eseguire operazioni di registrazione in blocco delle risorse.

Nota:

  • le richieste UPSERT contano doppio.
  • Esistono quote per gli elementi e i caratteri nelle chiamate API ** change-resource-record-sets**.

Utilizza tentativi di errore e backoff esponenziale

Per evitare la limitazione, aggiungi nuovi tentativi di errore e backoff esponenziale alle chiamate API Route 53. Ad esempio, utilizza un semplice algoritmo di backoff esponenziale che riprova la chiamata in 2^i secondi, dove "i" è il numero di tentativi.

Rendi casuali le ore di inizio

Rendi casuale l'ora di inizio per chiamare le API Route 53. Assicurati che non vi siano più applicazioni che elaborano la logica contemporaneamente. Le richieste simultanee potrebbero causare la limitazione.

Introduci "tempo di inattività" tra le chiamate

Se le chiamate delle funzioni di codice alle API Route 53 sono consecutive, allora aggiungi del "tempo di inattività" tra le due chiamate per ridurre al minimo il rischio di limitazione.

AWS UFFICIALE
AWS UFFICIALEAggiornata 9 mesi fa