GlobalTableNotFoundException
TL;DR — DescribeGlobalTable / UpdateGlobalTable ne voient que les tables globales de version 2017.11.29 (Legacy). Une table globale bâtie sur la version 2019.11.21 (Current) — celle que tu devrais utiliser — est gérée comme une table régulière avec des réplicas via DescribeTable / UpdateTable, et les API legacy la signalent comme inexistante. Vérifie sur quelle version tu es avant de supposer que la table a disparu.
Ce que ça signifie
GlobalTableNotFoundException: The specified global table does not exist.DynamoDB a deux générations de tables globales avec deux surfaces d'API disjointes. La génération legacy (2017.11.29) enregistre un objet « table globale » nommé sur lequel opèrent DescribeGlobalTable, UpdateGlobalTable et UpdateGlobalTableSettings. La génération current (2019.11.21) n'a pas d'objet de ce type — les réplicas vivent sur la table elle-même — donc ces appels legacy répondent par cette exception même si ta table se réplique parfaitement bien.
Pourquoi ça arrive
- La table est une table globale de version current (2019.11.21) — de loin la cause habituelle : l'API legacy ne l'indexe tout simplement pas.
- Aucune table globale n'a jamais été créée sous ce nom — la table existe mais n'a pas de réplicas, ou la configuration de la réplication a échoué plus tôt.
- Mauvaise région ou faute de frappe dans le nom — l'enregistrement de la table globale legacy est recherché par nom exact.
Comment corriger
Détermine la version :
aws dynamodb describe-table --table-name orders \ --query 'Table.GlobalTableVersion' # "2019.11.21" → use DescribeTable/UpdateTable, not the legacy APIsGère les réplicas de version current via
UpdateTable:aws dynamodb update-table --table-name orders \ --replica-updates '[{"Create": {"RegionName": "eu-west-1"}}]'et inspecte-les avec
describe-table(le champReplicas) au lieu dedescribe-global-table.Sur de l'outillage legacy ? Si tu exploites réellement des tables globales 2017.11.29, vérifie le nom et la région de l'enregistrement — et planifie la migration vers 2019.11.21, qu'AWS recommande pour sa flexibilité et son coût d'écriture répliquée plus faible.
Création depuis zéro : crée la table, puis ajoute des réplicas via
UpdateTable— n'utilise pasCreateGlobalTable(legacy) dans du nouveau code.
Vérifier la santé des réplicas entre régions est plus rapide avec les tables côte à côte — l'application de bureau DynoTable se connecte à chaque région depuis une seule fenêtre, et le calculateur de tarifs DynamoDB estime les coûts d'écriture répliquée avant que tu n'ajoutes un réplica.
Erreurs liées
- Global table version mismatch — la même séparation en deux générations, rencontrée depuis le parcours de migration.
- ReplicaNotFoundException — la région ne fait pas partie du groupe de réplication.
- ReplicaAlreadyExistsException — la région en fait déjà partie.
- Apprends : Tables globales DynamoDB
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
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.