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 agent。

30 天免费试用,无需信用卡 — 之后为无时间限制的免费版。