DynamoDB ThrottlingException

TL;DR — 你的請求速率超過了某個限制。它可重試——退避並重試(SDK 預設這樣做)。如果它持續,說明你在過於頻繁地呼叫一個控制平面 API(CreateTable、UpdateTable、DescribeTable),或觸及了一個帳戶級限制。

這是什麼意思

ThrottlingException: Rate of requests exceeds the allowed throughput.

ThrottlingException(以及相關的 RequestLimitExceeded)表示一個速率限制,它不是一張預置表自己的 RCU/WCU 設定。它以 HTTP 400 返回且可重試。它在過於快速執行的控制平面操作上最常見,而且——對按需表——當請求速率過高時(包括當你超過一個配置的最大按需吞吐量時),任何資料平面操作都可能返回它。錯誤攜帶 ThrottlingReason 欄位,指明被限流的資源和被觸及的限制。

為什麼會發生

  • 輪詢控制平面 API——在一個緊湊的迴圈中呼叫 DescribeTableListTablesUpdateTable(例如等待一張表變為 ACTIVE)。
  • 快速建立/刪除許多表——並行的控制平面操作有上限(同時處於 CREATING/UPDATING/DELETING 的表/索引不超過 500 個)。
  • 一個配置的按需最大吞吐量——在一張按需表或 GSI 上超過 MaxReadRequestUnits/MaxWriteRequestUnits 會返回 ThrottlingException
  • 一張按需表上的突然突發——新表從每秒 4,000 次寫入和 12,000 次讀取開始,在 30 分鐘內超過先前峰值的兩倍可能限流,直到 DynamoDB 擴充套件。

如何修正

  1. 用指數退避 + 抖動重試——AWS SDK 會自動這樣做;保持重試開啟並考慮自適應重試模式。
  2. 停止緊湊輪詢控制平面 API。 使用等待器(waitUntilTableExists),它們按合理的計劃輪詢,而不是一個熱迴圈。
  3. 批次並控制資料平面寫入的節奏。 逐漸拉昇批次載入,讓按需容量能與你一起擴充套件。
  4. 把表操作分散在一段時間內,而不是一次建立幾十個。

範例

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'});

常見問題

ThrottlingException 與 ProvisionedThroughputExceededException 相同嗎? 不會。ProvisionedThroughputExceededException 是超出表的預配置容量時出現的資料平面錯誤。 ThrottlingException 在控制平面操作(CreateTableUpdateTableDescribeTable)中最常見,這些操作具有較低的帳戶範圍限制,並且在非常高的流量突發情況下。

如何修復 DynamoDB ThrottlingException? 使用指數退避和抖動重試 — AWS SDK 自動執行此操作。停止嚴格輪詢的控制平面 API(使用waitUntilTableExists等服務者),逐漸增加批次負載,以便按需容量可以隨你擴充套件,並隨著時間的推移擴充套件表操作。

在 DynoTable 中檢查大小

當控制平面限制阻止表設定時,請使用 DynoTable 瀏覽現有表,而不是迴圈輪詢 DescribeTable — 在單次重新整理後使用 ⌘K 開啟表。對於觸發按需限制的批次負載,請在斜坡之前使用 pricing calculator 調整流量大小。使用 ⌘P 切換設定檔案; 設定→設定檔案中的Test Connection**確認帳戶。參見連線 AWS安裝

來源

相關錯誤

參考資料

最後核實於 2026-07-13,依據上方連結的 AWS 官方文件。

不必透過主控台就能操作 DynamoDB

一款快速的 DynamoDB 桌面用戶端,可執行 DynamoDB 無法執行的真正 SQL — JOINs、GROUP BY、聚合 — 並支援視覺化編輯與使用你自己的 Bedrock 金鑰的 AI 代理。

30 天免費試用,無需信用卡 — 之後為無時間限制的免費方案。