Come posso risolvere gli errori "ThrottlingException Rate exceeded" in Amazon SNS?
Desidero risolvere l'errore "ThrottlingException Rate exceeded" in Amazon Simple Notification Service (Amazon SNS).
Breve descrizione
Se le richieste API di Amazon SNS superano la quota di limitazione (della larghezza di banda della rete) dell'API, Amazon SNS restituisce un errore "ThrottlingException Rate exceeded" simile al seguente:
"An error occurred (ThrottlingException) when calling the API operation: Rate exceeded"
Nota: Amazon SNS limita le chiamate API per migliorare le prestazioni del servizio. Per ulteriori informazioni sulle quote di limitazione di un'API di Amazon SNS, consulta Endpoint e quote di Amazon Simple Notification Service.
Risoluzione
Identifica l'API con la limitazione (della larghezza di banda della rete)
Quando il limite di frequenza supera il limite assegnato per una chiamata API, ricevi una risposta di errore. Controlla il messaggio di errore o lo stack di errori per identificare l'azione dell'API che ha subito la limitazione.
Utilizza i log di AWS CloudTrail per controllare l'evento per la chiamata API. Gli eventi supportati vengono registrati in un evento di CloudTrail insieme ad altri eventi del servizio AWS come parte della cronologia degli eventi. Per ulteriori informazioni, consulta Registrazione delle chiamate API di AWS SNS utilizzando AWS CloudTrail.
Puoi anche visualizzare le metriche di Amazon CloudWatch per Amazon SNS. Utilizza le metriche di utilizzo di Amazon SNS per identificare le chiamate API di SNS che hanno raggiunto il limite di frequenza.
Verifica la quota di limitazione (della larghezza di banda della rete) delle API di Amazon SNS
La quota di limitazione delle API di Amazon SNS varia in base alla Regione AWS. La quota di messaggi al secondo si basa sul numero di messaggi pubblicati in una Regione di SNS combinato con le richieste API Publish e PublishBatch. Se superi la quota di messaggi al secondo per la Regione, potresti ricevere errori di limitazione (della larghezza di banda della rete). Per ulteriori informazioni, consulta Limitazione (della larghezza di banda della rete) dell'API Amazon SNS.
Nota: dopo l'attivazione dei log in CloudTrail, le richieste API di SNS Publish e PublishBatch vengono registrate in CloudTrail. Tuttavia, il tipo di risorsa di SNS AWS::SNS::PhoneNumber non viene registrato da CloudTrail.
Utilizza il backoff esponenziale e la ripetizione
Per evitare errori di limitazione (della larghezza di banda della rete), è consigliabile utilizzare il backoff esponenziale e la ripetizione quando effettui una chiamata API per scaglionare gli intervalli. Assicurati di distribuire le chiamate API nel tempo. Pianifica le operazioni con la randomizzazione in modo che si distribuiscano nel tempo. Per ulteriori informazioni, consulta Exponential backoff and jitter (Backoff esponenziale e jitter) e Comportamento di ripetizione.
Utilizza il seguente esempio di pseudocodice di alto livello per il backoff esponenziale e la ripetizione:
MakeSDKRequest() { attempts = 0 loop { GetSendToken() response = SNSAPIRequest() RequestBookkeeping(response) if not Retryable(response) return response attempts += 1 if attempts >= MAX_ATTEMPTS: return response if not HasRetryQuota(response) return response delay = ExponentialBackoff(attempts) sleep(delay) } }
Richiedi un aumento della quota
Se hai implementato il backoff esponenziale e la ripetizione ma continui a ricevere errori "ThrottlingException Rate exceeded", invia una richiesta di aumento della quota di SNS.
Nota: puoi richiedere un aumento di un limite flessibile, ma non puoi aumentare un limite rigido. Per ulteriori informazioni, consulta Service quotas Quote di servizio).
- Argomenti
- Application Integration
- Lingua
- Italiano
