DynamoDB Streams — The ARN provided is invalid
TL;DR — 一个 Streams API 调用(DescribeStream、GetShardIterator、GetRecords)收到了一个不是格式良好、当前的 stream 描述符的 stream ARN——通常是一个 /stream/latest 占位符、误用的表 ARN,或一个陈旧/被截断的 ARN。从 DescribeTable 的 LatestStreamArn 获取真实的 ARN 并原样传入。
含义
ValidationException: The ARN provided is invalid一个 DynamoDB stream ARN 有严格的形态:
arn:aws:dynamodb:us-west-2:111122223333:table/TestTable/stream/2015-05-11T21:21:33.291末尾的 /stream/<ISO-8601 timestamp> 是一个特定的 stream 描述符,而不是一个符号名称。Streams 端点会以 The ARN provided is invalid 拒绝任何无法解析为有效、现存 stream ARN 的东西。
为什么会发生
- 一个
/stream/latest(或类似)占位符——某些工具和本地模拟器接受它,但真实的 DynamoDB 要求具体的带时间戳的描述符。 - 传入了表 ARN(
.../table/TestTable),而本应是一个 stream ARN。 - 一个陈旧的 ARN——Streams 被禁用并重新启用了,因此表当前的 stream 有一个新描述符;旧的 stream 在被禁用后只保持可读 24 小时,然后它的记录过期。
- 一个手工构建或被截断的 ARN——区域错误、账户错误、缺少
/stream/...段,或一个多余的空白/换行。 - 区域不匹配——Streams 客户端配置的区域与 ARN 编码的不同。
如何修复
- 从真相之源获取 ARN。 调用
DescribeTable并读取Table.LatestStreamArn;使用那个确切的字符串。 - 绝不手工合成 ARN或使用
/stream/latest——时间戳段由 DynamoDB 分配,无法猜出。 - 使用 DynamoDB Streams 端点,而不是主 DynamoDB 端点,来做
DescribeStream/GetShardIterator/GetRecords。 - 让客户端的区域与 ARN 中的区域匹配。
- 在任何 Streams 切换后重新获取——一次禁用/启用循环会创建一个带不同描述符的全新 stream,因此之前的 ARN 不再指向活动的 stream。
在处理 Streams 并想把真实的 stream ARN 摆在眼前?DynoTable 桌面应用会显示表的活动 stream 描述符,让你复制正确的 ARN,而不是一个猜出来的。
在 DynoTable 中定位
DynoTable 在表元数据面板中显示每个表的 LatestStreamArn — 逐字复制它,而不是手动构建 /stream/latest 占位符。在连接 Lambda 或 KCL 使用者之前,使用 ⌘K 打开表并展开 Stream 详细信息。使用 Query Builder 确认可以使用拥有该流的相同配置文件访问该表。 ⌘P切换区域;设置上的 Test Connection → 配置文件必须与 ARN 的区域匹配。参见连接 AWS和安装。切勿手动构建 /stream/<timestamp> 后缀 - 每次都从 DescribeTable 复制 LatestStreamArn。表 ARN (.../table/Name) 不是流 ARN,会触发相同的验证失败。
来源
- Change data capture for DynamoDB Streams(2026-07-13 验证)
- GetShardIterator — Amazon DynamoDB Streams API Reference(2026-07-13 验证)
相关错误
- Cannot access stream — stream is not enabled——Streams 关闭了或 ARN 指向一个已消失的 stream。
- ValidationException —— 参数值无效
- 学习:DynamoDB Streams
参考资料
- Change data capture for DynamoDB Streams — Amazon DynamoDB Developer Guide
- GetShardIterator — Amazon DynamoDB Streams API Reference
- DescribeStream — Amazon DynamoDB Streams API Reference
- DescribeTable — Amazon DynamoDB API Reference
最后核实于 2026-07-13,依据上方链接的 AWS 官方文档。