DynamoDB RequestLimitExceeded

TL;DR — 你超過了一個帳戶/表格層級的請求速率配額,而非表格自己的佈建容量。隨需表格預設為每秒 40,000 個讀取請求單位與 40,000 個寫入請求單位。保持 SDK 的退避重試、若流量是真實的就在 Service Quotas 中提高配額,並分散負載讓單一表格/partition 不是瓶頸。

這是什麼意思

RequestLimitExceeded: Throughput exceeds the current throughput limit for your
account. To request a limit increase, contact AWS Support.

RequestLimitExceeded 是 DynamoDB 在資料平面回傳的三個節流例外之一(與 ProvisionedThroughputExceededExceptionThrottlingException 並列)。它表示你觸及了帳戶層級的服務配額 — 例如隨需表格的每表格吞吐量配額 — 而非每表格佈建的 RCU/WCU 上限。它回傳 HTTP 400 且可重試 — SDK 自動退避並重試。錯誤帶有 ThrottlingReason 欄位(例如 TableWriteAccountLimitExceededIndexReadAccountLimitExceeded)加上受影響資源的 ARN。

為什麼會發生

  • 隨需表格預設上限 — 每個隨需表格(及其每個 GSI)有可調整的預設配額,每秒 40,000 個讀取請求單位與 40,000 個寫入請求單位。持續消耗超過它會以帳戶層級的 ThrottlingReason 節流,直到配額被提高。
  • 表格在帳戶配額下無法進一步擴充 — 根據 AWS 文件,隨需請求的速率超過允許的帳戶吞吐量「且表格無法進一步擴充」。這些配額是後備防護,且可被提高。
  • 新轉隨需的表格暖機中 — 全新的隨需表格(或剛切換到隨需的)立即服務最多它先前尖峰的兩倍;遠超過那個的更大尖峰可能在它擴充前就節流。
  • 單一熱表格吸收遠高於其近期尖峰的流量尖峰。

如何修正

  1. 保持指數退避重試開啟 — SDK 預設處理暫時性尖峰。對突發工作負載使用 adaptive retry 模式。不要停用重試。
  2. 提高配額 — 若流量合法且持續,在 Service Quotas 中請求提高每表格隨需吞吐量(或帳戶表格數量/吞吐量配額)。
  3. 在已知尖峰前預熱 — 增長流量而非直接跳到尖峰,讓隨需擴充保持領先需求。
  4. 分散負載 — 分片熱鍵並分散寫入,讓一個表格/partition 不承載整個尖峰(熱 partition 模式)。
  5. 快取熱讀取(DAX 或應用快取)以將讀取壓力卸到上限以下。

常見問題

RequestLimitExceeded 與 ProvisionedThroughputExceededException 有何不同? ProvisionedThroughputExceededException 表示一個佈建容量表格超過了它自己設定的 RCU/WCU。RequestLimitExceeded 表示你觸及了帳戶或表格層級的請求速率配額 — 最常見的是隨需預設的每秒 40,000 個讀取與 40,000 個寫入請求單位 — 與單一表格的每表格設定無關。

RequestLimitExceeded 可以重試嗎? 可以。它是一個節流錯誤,AWS SDK 以指數退避自動重試它。持續發生表示你需要配額增加或分散負載,而非更多重試。

相關錯誤

參考資料

最後驗證於 2026-07-13,對照上方連結的 AWS 官方文件。

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

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

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