DynamoDB ResourceNotFoundException
TL;DR — DynamoDB tidak dapat menemukan tabel (atau indeks) yang Anda beri nama di wilayah/account yang ditunjuk klien Anda. Periksa kesalahan ketik pada nama tabel, region yang salah, atau kredensial untuk akun lain. Hampir tidak pernah tabel tersebut benar-benar hilang.
Apa artinya
ResourceNotFoundException: Requested resource not found: Table: <table-name> not found
# on DynamoDB Local:
ResourceNotFoundException: Cannot do operations on a non-existent tableMengapa itu terjadi
- Ketidakcocokan wilayah — tabelnya dalam
us-east-1tetapi default klien adalahus-west-2(atau tidak ada wilayah yang ditetapkan, sehingga SDK memilih default yang berbeda). - Nama tabel salah — kesalahan ketik, huruf besar-kecil yang salah (nama peka huruf besar-kecil di layanan web), atau nama dengan awalan lingkungan (
prod-OrdersvsOrders). - Akun salah — kredensial ditetapkan ke akun AWS yang berbeda dengan akun pemilik tabel.
- Meminta indeks yang belum ada atau belum menjadi
ACTIVE(GSI masih diisi ulang) — referensi API memanggil "tabel atau indeks yang tidak ada" yang "statusnya mungkin bukanACTIVE". - Tabel benar-benar dihapus, atau Anda diarahkan ke DynamoDB Lokal, yang dimulai dengan kosong.
Bagaimana cara memperbaikinya
- Sematkan wilayah secara eksplisit pada klien dan konfirmasikan kecocokannya dengan tempat tabel berada.
- Verifikasi nama tabel yang tepat — membuat daftar tabel di wilayah tersebut (
aws dynamodb list-tables --region <r>) dan menyalin nama kata demi kata. - Konfirmasi kredensial penyelesaian ke akun pemilik (
aws sts get-caller-identity). - Periksa nama indeks + status jika panggilan menggunakan
IndexName(DescribeTable→ GSI harusACTIVE).
Contoh
import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
// Pin the region so the client can't silently target the wrong one:
const client = new DynamoDBClient({region: 'us-east-1'});FAQ
Bagaimana cara memperbaiki ResourceNotFoundException di DynamoDB?
Periksa apakah nama tabel, wilayah AWS, dan akun (kredensial) semuanya sejajar: sematkan wilayah secara eksplisit pada klien, daftarkan tabel di wilayah tersebut untuk memverifikasi nama persisnya, dan konfirmasikan penyelesaian kredensial ke akun pemilik dengan aws sts get-caller-identity.
Apakah ResourceNotFoundException berarti tabel saya telah dihapus? Jarang. Biasanya ini berarti klien mencari di tempat yang salah — ketidakcocokan wilayah, kesalahan ketik atau kesalahan huruf pada nama tabel, atau kredensial untuk akun lain. Ini juga aktif ketika Anda menanyakan indeks yang tidak ada atau belum AKTIF, atau ketika Anda menunjuk ke DynamoDB Lokal, yang dimulai dengan kosong.
Workbench DynoTable
DynoTable mencantumkan tabel untuk profil dan wilayah aktif di sidebar. Jika sebuah
tabel tidak ada, tekan ⌘P untuk mengonfirmasi profil dan memeriksa
wilayah pada tab — ketidakcocokan di sini adalah penyebab paling umum dari kesalahan ini
aplikasi. ⌘K → Buka tabel berdasarkan nama memungkinkan Anda mengetik tabel persisnya
nama ketika ListTables ditolak atau daftar disaring berdasarkan awalan tabel.
Terhadap DynamoDB Lokal, tambahkan profil dengan titik akhir http://localhost:8000 dan
kredensial placeholder yang cocok (Hubungkan ke DynamoDB Lokal)
— Lokal mulai kosong hingga Anda membuat tabel.
Kesalahan terkait
- ResourceInUseException — kebalikannya: tabel sudah ada.
- Wilayah tidak ada di konfigurasi
- Token keamanan tidak valid
- Pelajari: Menjalankan DynamoDB Lokal — Lokal dimulai dengan kosong; tahu di titik akhir mana Anda berada.
Sumber
- Penanganan kesalahan dengan DynamoDB — Panduan Pengembang Amazon DynamoDB (diverifikasi 13-07-2026)
- Kueri — Referensi Amazon DynamoDB API (diverifikasi 13-07-2026)
- Catatan penggunaan lokal DynamoDB — Panduan Pengembang Amazon DynamoDB (diverifikasi 13-07-2026)