DynamoDB BackupNotFoundException

TL;DR — DynamoDB 沒有與你提供的 BackupArn 匹配的備份。幾乎總是 ARN 錯誤或格式不對、備份已刪除或過期,或者用戶端指向了錯誤的區域/帳戶。列出該表的備份並複製確切的 ARN。

這是什麼意思

BackupNotFoundException: Backup not found for the given BackupARN.

恢復和描述類呼叫(RestoreTableFromBackupDescribeBackupDeleteBackup)透過 ARN 定位備份。這個 HTTP 400 意味著在你的憑證解析到的區域 + 帳戶中,該 ARN 上不存在任何備份。它是用戶端錯誤,在 ARN 正確之前不可重試

為什麼會發生

  • ARN 錯誤或格式不對——拼寫錯誤、被截斷的 ARN,或者是手工拼出而非從 list-backups 複製的。
  • 備份已刪除或過期——有人移除了按需備份、AWS Backup 生命週期規則讓它過期,或者它是一個 SYSTEM 備份(在刪除啟用了 PITR 的表時自動建立),會在建立後 35 天過期。
  • 區域不對——list-backups/describe-backup 是分割槽域的;備份位於它被建立的區域(嵌在其 ARN 中的區域),因此指向別處的用戶端看不到它。
  • 帳戶不對——憑證解析到的 AWS 帳戶不是擁有該備份的那個。
  • 由 AWS Backup 管理的恢復點——透過 AWS Backup 計劃的備份以恢復點形式儲存在 AWS Backup 保管庫中,那裡的生命週期規則可以轉換或刪除它們;如果備份不在你預期的位置,檢查一下 AWS Backup 主控台。

如何修正

  1. 列出該表的備份並取得真實的 ARN:
    aws dynamodb list-backups --table-name <Table> --region <r>
  2. 核實它存在且可用:
    aws dynamodb describe-backup --backup-arn <arn> --region <r>
    BackupStatus 應為 AVAILABLE——一個正處於建立/刪除/恢復中的備份會以 BackupInUseException 拒絕相互衝突的呼叫。
  3. 把區域固定到備份 ARN 中的那個(備份被建立的區域)。
  4. aws sts get-caller-identity 確認帳戶
  5. 備份是由某個 AWS Backup 計劃建立的嗎? 在 AWS Backup 主控台中查詢它(其保管庫的恢復點)——那裡的生命週期規則可以按計劃轉換或刪除備份。

從 DynoTable 連線

DynoTable 是一個表工作臺,而不是備份主控台 — 在呼叫 RestoreTableFromBackup 之前,用它來確認你要恢復到的區域中存在活動表。開啟目標區域設定檔案(⌘P),⌘K→按名稱開啟表,並使用設定檔案晶片上的憑證狀態驗證帳戶。如果恢復失敗並出現 BackupNotFoundException,則 ARN 錯誤或已過期;在AWS備份/DynamoDB備份API中修復該問題,然後返回DynoTable檢查恢復的表架構和項目。 item size calculator 有助於健全性檢查恢復後的物品形狀是否仍然適合你的容量計劃。

來源

相關錯誤

參考資料

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

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

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

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