Come posso prevenire gli errori "Rate exceeded" (Frequenza superata) in CloudFormation?

Ultimo aggiornamento: 12/04/2022

A volte ricevo errori "Rate exceeded" (Frequenza superata) quando utilizzo AWS CloudFormation. Come posso evitare che si verifichi questo errore?

Breve descrizione

L'errore Rate exceeded (Frequenza superata) si verifica quando le chiamate API a un servizio AWS superano il numero massimo consentito di richieste API e vengono limitate. In genere, questi errori sono temporanei e si risolvono automaticamente man mano che le chiamate API diminuiscono.

Per evitare errori Rate exceeded (Frequenza superata), puoi:

  • Implementare il backoff esponenziale
  • Creare o aggiornare gli stack uno alla volta
  • Utilizzare l'attributo DependsOn
  • Richiedere un aumento della quota

Risoluzione

Implementare il backoff esponenziale

Quando utilizzi gli endpoint API di AWS, implementa il backoff esponenziale per ridurre il numero di chiamate API effettuate.

Il seguente pseudo codice di esempio per una chiamata API DescribeStacks è configurato per riprovare la chiamata API dopo un periodo di tempo specifico:

{
Make ‘DescribeStacks’ API call 

if throttled: wait 2 sec; Make ‘DescribeStacks’ API call 
if throttled: wait 4 sec; Make ‘DescribeStacks’ API call 
if throttled: wait 8 sec; Make ‘DescribeStacks’ API call 
if throttled: wait 16 sec; Make ‘DescribeStacks’ API call 
if throttled: wait 32 sec; Make ‘DescribeStacks’ API call 
}

Creare o aggiornare gli stack uno alla volta

La creazione o l'aggiornamento simultaneo di più stack di CloudFormation può comportare l'esecuzione di più chiamate API contemporaneamente. Per evitare che le chiamate API superino il numero massimo consentito di richieste API, crea o aggiorna uno stack alla volta.

Utilizzare l'attributo DependsOn

A meno che non venga definita una dipendenza tra le risorse, CloudFormation crea e aggiorna le risorse contemporaneamente. L'attributo DependsOn definisce le dipendenze tra le risorse per controllare gli aggiornamenti simultanei.

L'attributo DependsOn consente di specificare quando ogni risorsa dipendente viene creata o aggiornata. Ad esempio, se la risorsa B dipende dalla risorsa A, puoi specificare che la risorsa A deve essere creata o aggiornata prima della risorsa B. Ciò limita il numero di chiamate API effettuate contemporaneamente e riduce le limitazioni. Puoi anche utilizzare l'attributo DependsOn con stack nidificati.

Richiedere un aumento della quota

Se le risoluzioni precedenti non funzionano per la tua situazione, puoi richiedere un aumento della quota. Prima di richiedere un aumento della quota, identifica la chiamata API che supera la frequenza delle chiamate.

Nella tua richiesta di aumento della quota, includi la tua Regione AWS, l'intervallo di tempo della limitazione delle API e il motivo dell'aumento.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?