DynamoDB ThrottlingException
TL;DR: la percentuale di richieste ha superato un limite. È possibile riprovare: tornare indietro e riprovare (l'SDK lo fa per impostazione predefinita). Se il problema persiste, stai chiamando un piano di controllo API (CreateTable, UpdateTable, DescribeTable) troppo spesso o stai raggiungendo un limite a livello di account.
Cosa significa
ThrottlingException: Rate of requests exceeds the allowed throughput."ThrottlingException" (e il relativo "RequestLimitExceeded") segnala un limite di velocità che non è l'impostazione RCU/WCU della tabella con provisioning. Ritorna come HTTP 400 e è riprovabile. È più comune nelle operazioni sul piano di controllo eseguite troppo rapidamente e, per le tabelle su richiesta, può essere restituito per qualsiasi operazione sul piano dati quando la frequenza di richiesta è troppo elevata (incluso quando si supera un throughput su richiesta massimo configurato). L'errore contiene campi "ThrottlingReason" che denominano la risorsa limitata e il limite raggiunto.
Perché succede
- Polling delle API del piano di controllo: chiamata a
DescribeTable,ListTables,UpdateTablein un ciclo stretto (ad esempio in attesa che una tabella diventiACTIVE). - Creazione/eliminazione di molte tabelle rapidamente: le operazioni simultanee del piano di controllo sono limitate (non più di 500 tabelle/indici in
CREATING/UPDATING/DELETINGcontemporaneamente). - Un throughput massimo on-demand configurato: supera
MaxReadRequestUnits/MaxWriteRequestUnitssu una tabella on-demand o GSI restituisceThrottlingException. - Un'esplosione improvvisa su una tabella on-demand: le nuove tabelle iniziano a 4.000 scritture/s e 12.000 letture/s e il superamento del doppio del picco precedente entro 30 minuti può rallentare fino a raggiungere una scala di DynamoDB.
Come risolverlo
- Riprova con backoff esponenziale + jitter: gli AWS SDK lo fanno automaticamente; mantenere i tentativi abilitati e considerare la modalità di ripetizione adattiva.
- Interrompi il polling serrato delle API del piano di controllo. Utilizza i camerieri ("waitUntilTableExists") che eseguono il polling in base a una pianificazione sensata anziché a un ciclo caldo.
- Scritture batch e ritmo sul piano dati. Aumenta gradualmente i carichi di massa in modo che la capacità on-demand possa adattarsi alle tue esigenze.
- Distribuisci le operazioni della tabella nel tempo anziché crearne dozzine contemporaneamente.
- Seleziona "ThrottlingReason" nella risposta. Indica la risorsa limitata e il limite: le limitazioni del piano di controllo e del piano dati su richiesta richiedono correzioni diverse.
Esempio
import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
import {waitUntilTableExists} from '@aws-sdk/client-dynamodb';
const client = new DynamoDBClient({});
// a waiter polls on a backoff schedule — not a tight DescribeTable loop
await waitUntilTableExists({client, maxWaitTime: 120}, {TableName: 'Orders'});FAQ
ThrottlingException è uguale a ProvisionedThroughputExceededException?
No. ProvisionedThroughputExceededException è l'errore del piano dati dovuto al superamento della capacità assegnata di una tabella. ThrottlingException è più comune nelle operazioni del piano di controllo (CreateTable, UpdateTable, DescribeTable), che hanno limiti bassi a livello di account, e su burst di volume molto elevato.
Come posso risolvere una DynamoDB ThrottlingException?
Riprova con backoff e jitter esponenziali: gli AWS SDK lo fanno automaticamente. Interrompi il polling ristretto delle API del piano di controllo (usa i camerieri come waitUntilTableExists), aumenta gradualmente i carichi di massa in modo che la capacità on-demand possa scalare con te e distribuisci le operazioni sulle tabelle nel tempo.
Controlla la dimensione in DynoTable
Quando la limitazione del piano di controllo blocca l'impostazione della tabella, utilizza DynoTable per sfogliare le tabelle esistenti invece di eseguire il polling di DescribeTable in un ciclo: apri le tabelle con ⌘K dopo un singolo aggiornamento. Per i carichi collettivi che attivano la limitazione su richiesta, dimensiona il traffico con il calcolatore dei prezzi prima di aumentare.
Cambia profilo con ⌘P; Verifica connessione in Impostazioni → Profili conferma l'account. Consulta Connetti a AWS e Installa.
Fonti
- Gestione degli errori con DynamoDB — ThrottlingException (verificato il 13-07-2026)
- Risoluzione dei problemi di limitazione in Amazon DynamoDB (verificato il 13-07-2026)
Errori correlati
- ProvisionedThroughputExceededException: limitazione della capacità per tabella.
- RequestLimitExceeded: la quota della percentuale di richieste dell'account.
- Throughput su richiesta superato: le tabelle su richiesta possono ancora essere limitate.
- ResourceInUseException — tabella occupata/esiste già.
- Impara: On-demand vs provisioned
Riferimenti
- Gestione degli errori con DynamoDB - Guida per sviluppatori di Amazon DynamoDB
- Risoluzione dei problemi di limitazione in Amazon DynamoDB — Guida per sviluppatori di Amazon DynamoDB
- DynamoDB Modalità capacità on-demand - Guida per sviluppatori Amazon DynamoDB
- DynamoDB throughput massimo per tabelle on-demand — Guida per sviluppatori di Amazon DynamoDB
Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale del AWS collegata sopra.