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 官方文件。