DynamoDB Streams — The ARN provided is invalid
TL;DR — Streams API 呼び出し(DescribeStream、GetShardIterator、GetRecords)が、正しい形式の現在のストリームディスクリプタでないストリーム ARN を受け取りました。通常は /stream/latest プレースホルダー、誤ったテーブル ARN、または古い/切り詰められた ARN です。DescribeTable の LatestStreamArn から実際の ARN を取得し、そのまま渡してください。
意味
ValidationException: The ARN provided is invalidDynamoDB の ストリーム ARN は厳格な形状を持ちます:
arn:aws:dynamodb:us-west-2:111122223333:table/TestTable/stream/2015-05-11T21:21:33.291末尾の /stream/<ISO-8601 タイムスタンプ> は、シンボリックな名前ではなく特定のストリームディスクリプタです。Streams エンドポイントは、有効な既存のストリーム ARN として解析されないものを The ARN provided is invalid で拒否します。
発生する理由
/stream/latest(または類似の)プレースホルダー — 一部のツールやローカルエミュレータはそれを受け入れますが、本物の DynamoDB は具体的なタイムスタンプ付きのディスクリプタを要求します。- ストリーム ARN が期待される場所での テーブル ARN の渡し(
.../table/TestTable)。 - 古い ARN — Streams が無効化されて再有効化されたため、テーブルの現在のストリームは新しいディスクリプタを持つ。古いストリームは無効化後 24 時間だけ読み取り可能で、その後レコードは期限切れになる。
- 手作りまたは切り詰められた ARN — 誤ったリージョン、誤ったアカウント、
/stream/...セグメントの欠落、または余分な空白/改行。 - リージョンの不一致 — Streams クライアントが、ARN がエンコードするのとは別のリージョンに設定されている。
修正方法
- 信頼できる情報源から ARN を取得します。
DescribeTableを呼び出してTable.LatestStreamArnを読み、その正確な文字列を使います。 - ARN を手作業で合成したり
/stream/latestを使ったりしないでください — タイムスタンプセグメントは DynamoDB によって割り当てられ、推測できません。 DescribeStream/GetShardIterator/GetRecordsには、メインの DynamoDB エンドポイントではなく DynamoDB Streams エンドポイントを使います。- クライアントの リージョンを ARN のリージョンに一致させます。
- Streams の切り替え後は再取得します — 無効化/有効化のサイクルは、別のディスクリプタを持つ真新しいストリームを作成するため、以前の ARN はもうライブのストリームを指しません。
Streams を扱い、実際のストリーム ARN を目の前に置きたいですか?DynoTable デスクトップアプリ はテーブルのライブストリームディスクリプタを表示するため、推測ではなく正しい ARN をコピーできます。
DynoTable で見つける
DynoTable は各テーブルの LatestStreamArn をテーブルメタデータのパネルに表示します — /stream/latest のようなプレースホルダーを手で組み立てるのではなく、そのままコピーしてください。Lambda や KCL のコンシューマーを組む前に、⌘K でテーブルを開き、Stream の詳細を展開しましょう。
ストリームを所有するのと同じプロファイルでテーブルに到達できることは、クエリビルダーで確認できます。リージョンの切り替えは ⌘P、Settings → Profiles の 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 が消えたストリームを指している。
- ValidationException — パラメータの値が不正
- Learn: 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 ドキュメントに照らして確認しました。