GlobalTableNotFoundException
TL;DR — DescribeGlobalTable / UpdateGlobalTable hanya melihat global table versi 2017.11.29 (Legacy). Global table yang dibangun pada versi 2019.11.21 (Current) — yang seharusnya Anda gunakan — dikelola sebagai tabel biasa dengan replika melalui DescribeTable / UpdateTable, dan API legacy melaporkannya sebagai tidak ada. Periksa versi mana yang Anda gunakan sebelum mengasumsikan tabel hilang.
Apa artinya
GlobalTableNotFoundException: The specified global table does not exist.DynamoDB memiliki dua generasi global-table dengan dua permukaan API yang terpisah. Generasi legacy (2017.11.29) mendaftarkan objek "global table" bernama yang dioperasikan DescribeGlobalTable, UpdateGlobalTable, dan UpdateGlobalTableSettings. Generasi current (2019.11.21) tidak punya objek semacam itu — replika hidup pada tabel itu sendiri — jadi panggilan legacy tersebut menjawab dengan exception ini bahkan meski tabel Anda mereplikasi dengan sempurna.
Mengapa terjadi
- Tabel adalah global table versi-current (2019.11.21) — sejauh ini penyebab yang biasa: API legacy hanya tidak mengindeksnya.
- Tidak ada global table yang pernah dibuat dengan nama itu — tabel ada tetapi tidak punya replika, atau setup replikasi gagal sebelumnya.
- Region salah atau salah ketik nama — pendaftaran global-table legacy dicari berdasarkan nama persis.
Cara memperbaikinya
Tentukan versinya:
aws dynamodb describe-table --table-name orders \ --query 'Table.GlobalTableVersion' # "2019.11.21" → use DescribeTable/UpdateTable, not the legacy APIsKelola replika versi-current melalui
UpdateTable:aws dynamodb update-table --table-name orders \ --replica-updates '[{"Create": {"RegionName": "eu-west-1"}}]'dan periksa mereka dengan
describe-table(fieldReplicas) alih-alihdescribe-global-table.Pada tooling legacy? Jika Anda benar-benar mengoperasikan global table 2017.11.29, verifikasi nama dan Region pendaftaran — dan rencanakan peningkatan ke 2019.11.21, yang direkomendasikan AWS untuk fleksibilitas dan biaya replicated-write yang lebih rendah.
Membuat dari awal: buat tabel, lalu tambahkan replika via
UpdateTable— jangan gunakanCreateGlobalTable(legacy) di kode baru.
Memeriksa kesehatan replika di seluruh Region lebih cepat dengan tabel berdampingan — aplikasi desktop DynoTable terhubung ke setiap Region dari satu jendela, dan kalkulator harga DynamoDB memperkirakan biaya replicated write sebelum Anda menambahkan replika.
Kesalahan terkait
- Global table version mismatch — pemisahan dua-generasi yang sama, dikenai dari jalur peningkatan.
- ReplicaNotFoundException — Region bukan bagian dari grup replikasi.
- ReplicaAlreadyExistsException — Region sudah menjadi bagian.
- Pelajari: DynamoDB global tables
References
- UpdateGlobalTable — Amazon DynamoDB API Reference
- DynamoDB global tables versions (determining the version) — Amazon DynamoDB Developer Guide
- UpdateTable — Amazon DynamoDB API Reference
- CreateGlobalTable — Amazon DynamoDB API Reference
Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.