DynamoDB Streams — The ARN provided is invalid

TL;DR — Streams API 呼び出し(DescribeStreamGetShardIteratorGetRecords)が、正しい形式の現在のストリームディスクリプタでないストリーム ARN を受け取りました。通常は /stream/latest プレースホルダー、誤ったテーブル ARN、または古い/切り詰められた ARN です。DescribeTableLatestStreamArn から実際の ARN を取得し、そのまま渡してください。

意味

ValidationException: The ARN provided is invalid

DynamoDB の ストリーム 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 がエンコードするのとは別のリージョンに設定されている。

修正方法

  1. 信頼できる情報源から ARN を取得します。 DescribeTable を呼び出して Table.LatestStreamArn を読み、その正確な文字列を使います。
  2. ARN を手作業で合成したり /stream/latest を使ったりしないでください — タイムスタンプセグメントは DynamoDB によって割り当てられ、推測できません。
  3. DescribeStream/GetShardIterator/GetRecords には、メインの DynamoDB エンドポイントではなく DynamoDB Streams エンドポイントを使います
  4. クライアントの リージョンを ARN のリージョンに一致させます
  5. 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 ではなく、同じ検証エラーを引き起こします。

出典

関連するエラー

参考資料

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynamoDB では実行できない本物の SQL(JOINs、GROUP BY、集計)を実行する高速な DynamoDB デスクトップクライアント。ビジュアル編集と、あなた自身の Bedrock キーで動く AI エージェントを備えています。

30日間無料トライアル、クレジットカード不要 — その後は期限のない Free プラン。