Aliran DynamoDB — ARN yang disediakan tidak valid

TL;DR — Panggilan Streams API (DescribeStream, GetShardIterator, GetRecords) mendapat aliran ARN yang bukan merupakan deskriptor aliran saat ini yang terbentuk dengan baik — biasanya placeholder /stream/latest, tabel ARN karena kesalahan, atau /truncated ARN yang basi. Ambil ARN asli dari LatestStreamArn DescribeTable dan sebarkan secara verbatim.

Apa artinya

ValidationException: The ARN provided is invalid

Sebuah ARN aliran DynamoDB memiliki bentuk yang ketat:

arn:aws:dynamodb:us-west-2:111122223333:table/TestTable/stream/2015-05-11T21:21:33.291

Akhiran /stream/<stempel waktu ISO-8601> adalah deskriptor aliran yang spesifik, bukan nama simbolis. Endpoint Streams menolak apa pun yang tidak terurai sebagai ARN aliran yang valid dan benar-benar ada, dengan The ARN provided is invalid.

Mengapa itu terjadi

  • Sebuah placeholder /stream/latest (atau sejenisnya) — beberapa alat dan emulator lokal menerimanya, tetapi DynamoDB sungguhan menuntut deskriptor berstempel waktu yang konkret.
  • Meneruskan ARN tabel (.../table/TestTable) di tempat yang mengharapkan ARN aliran.
  • ARN yang basi — Streams dimatikan lalu dinyalakan kembali, sehingga aliran tabel saat ini punya deskriptor baru; aliran lama hanya tetap dapat dibaca 24 jam setelah dimatikan, lalu rekamannya kedaluwarsa.
  • ARN buatan tangan atau terpotong — wilayah salah, akun salah, segmen /stream/... hilang, atau ada spasi/baris baru tambahan.
  • Ketidakcocokan wilayah — klien Streams dikonfigurasi untuk wilayah yang berbeda dari yang dikodekan ARN.

Bagaimana cara memperbaikinya

  1. Ambil ARN dari sumber kebenarannya. Panggil DescribeTable dan baca Table.LatestStreamArn; gunakan string itu persis apa adanya.
  2. Jangan pernah membuat sendiri ARN dengan tangan atau memakai /stream/latest — segmen stempel waktunya ditetapkan oleh DynamoDB dan tidak bisa ditebak.
  3. Gunakan endpoint DynamoDB Streams, bukan endpoint DynamoDB utama, untuk DescribeStream/GetShardIterator/GetRecords.
  4. Samakan wilayah klien dengan wilayah yang ada di ARN.
  5. Ambil ulang setelah setiap pengalihan Streams — siklus matikan/nyalakan menciptakan aliran yang benar-benar baru dengan deskriptor berbeda, jadi ARN sebelumnya tidak lagi menunjuk ke aliran yang aktif.
  6. Pangkas spasi saat menyalin. Baris baru di akhir ARN yang selain itu valid tetap gagal validasi.

Temukan di DynoTable

DynoTable menampilkan LatestStreamArn setiap tabel di panel metadata tabel — salin persis apa adanya alih-alih membuat sendiri placeholder /stream/latest. Buka tabel dengan ⌘K dan bentangkan detail Stream sebelum Anda merangkai konsumen Lambda atau KCL.

Gunakan Query Builder untuk memastikan tabelnya dapat dijangkau dengan profil yang sama dengan pemilik aliran. Ganti Wilayah dengan ⌘P; Uji Koneksi pada Pengaturan → Profil harus cocok dengan Wilayah pada ARN. Lihat Menghubungkan ke AWS dan Instal. Jangan pernah membuat sendiri akhiran /stream/<timestamp> — salin LatestStreamArn dari DescribeTable setiap kali. ARN tabel (.../table/Name) bukan ARN aliran dan memicu kegagalan validasi yang sama.

Sumber

Kesalahan terkait

Referensi

Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.