GlobalTableNotFoundException
TL;DR — DescribeGlobalTable / UpdateGlobalTable yalnızca sürüm 2017.11.29 (Eski) global tablolarını görür. Sürüm 2019.11.21 (Güncel) üzerine kurulmuş bir global tablo — ki kullanmanız gereken budur — DescribeTable / UpdateTable aracılığıyla çoğaltmalı normal bir tablo olarak yönetilir ve eski API'ler onu var olmuyor olarak bildirir. Tablonun gittiğini varsaymadan önce hangi sürümde olduğunuzu kontrol edin.
Ne anlama gelir
GlobalTableNotFoundException: The specified global table does not exist.DynamoDB'nin, iki ayrık API yüzeyine sahip iki global-tablo nesli vardır. Eski (2017.11.29) nesil, DescribeGlobalTable, UpdateGlobalTable ve UpdateGlobalTableSettings'in üzerinde çalıştığı adlandırılmış bir "global tablo" nesnesi kaydeder. Güncel (2019.11.21) neslin böyle bir nesnesi yoktur — çoğaltmalar tablonun kendisinde yaşar — bu yüzden tablonuz mükemmel biçimde çoğaltılsa bile o eski çağrılar bu istisnayla yanıt verir.
Neden olur
- Tablo güncel sürüm (2019.11.21) bir global tablodur — açık ara olağan neden: eski API onu basitçe indekslemez.
- O adla hiç global tablo oluşturulmadı — tablo var ama çoğaltması yok ya da çoğaltma kurulumu daha önce başarısız oldu.
- Yanlış Bölge ya da ad yazım hatası — eski global-tablo kaydı tam adla aranır.
Nasıl düzeltilir
Sürümü belirleyin:
aws dynamodb describe-table --table-name orders \ --query 'Table.GlobalTableVersion' # "2019.11.21" → use DescribeTable/UpdateTable, not the legacy APIsGüncel sürüm çoğaltmalarını
UpdateTablearacılığıyla yönetin:aws dynamodb update-table --table-name orders \ --replica-updates '[{"Create": {"RegionName": "eu-west-1"}}]'ve onları
describe-global-tableyerinedescribe-table(Replicasalanı) ile inceleyin.Eski araçlarda mısınız? Gerçekten 2017.11.29 global tabloları işletiyorsanız, kaydın adını ve Bölgesini doğrulayın — ve AWS'nin esneklik ve daha düşük çoğaltılmış-yazma maliyeti için önerdiği 2019.11.21'e yükseltmeyi planlayın.
Sıfırdan oluşturma: tabloyu oluşturun, sonra
UpdateTablearacılığıyla çoğaltmalar ekleyin — yeni koddaCreateGlobalTable'a (eski) uzanmayın.
Çoğaltma sağlığını Bölgeler arasında kontrol etmek, tablolar yan yanayken daha hızlıdır — DynoTable masaüstü uygulaması tek bir pencereden her Bölgeye bağlanır ve DynamoDB fiyatlandırma hesaplayıcısı bir çoğaltma eklemeden önce çoğaltılmış yazma maliyetlerini tahmin eder.
İlgili hatalar
- Global table version mismatch — aynı iki nesil ayrımı, yükseltme yolundan çarpılmış.
- ReplicaNotFoundException — Bölge çoğaltma grubunun parçası değil.
- ReplicaAlreadyExistsException — Bölge zaten öyle.
- Öğrenin: 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
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.