Incohérence de version de table globale DynamoDB
TL;DR — DynamoDB a deux versions de table globale : 2017.11.29 (Legacy) et 2019.11.21 (Current). Créer une table globale legacy ou ajouter un réplica échoue lorsque les tables membres ne remplissent pas les conditions requises — les réplicas legacy doivent être vides, partager le même nom, le même schéma de clé et des GSI concordants, avoir DynamoDB Streams (nouvelles et anciennes images) activé, et utiliser une capacité d'écriture cohérente — et pointer les API d'une version vers les tables de l'autre version échoue purement et simplement. Aligne la configuration de chaque réplica (ou migre vers la version Current), puis réessaie.
Ce que ça signifie
ValidationException: Cannot create a global table from a table with ...
ValidationException: ... replicas must have the same ... across all regionsLa version Legacy (2017.11.29) assemble des tables régionales créées indépendamment en une table globale nommée, elle exige donc que les tables membres concordent exactement. La version Current (2019.11.21) gère la réplication sur la table elle-même — tu ajoutes des réplicas avec UpdateTable — et synchronise automatiquement les paramètres de TTL, d'auto scaling, de GSI et de chiffrement au repos entre les réplicas. Les erreurs d'incohérence de version apparaissent lorsque les tables que tu combines divergent, ou lorsque l'outillage s'adresse à l'API de la mauvaise version.
Pourquoi ça arrive
- Une table de réplica n'est pas vide — les API legacy
CreateGlobalTable/UpdateGlobalTableexigent que chaque table membre ne contienne aucune donnée. - Incohérence de nom ou de schéma de clé — tous les réplicas doivent partager le même nom de table et la même clé primaire.
- GSI incompatibles — les index secondaires globaux doivent concorder entre les réplicas, en nom et en clé de hachage/tri.
- Streams désactivés ou mauvais type de vue — chaque réplica legacy a besoin de DynamoDB Streams activé avec à la fois la nouvelle et l'ancienne image de l'élément.
- Capacité d'écriture incohérente — AWS exige que les paramètres de capacité d'écriture soient définis de manière cohérente entre les tables de réplica et les index secondaires concordants (auto scaling recommandé, ou des unités de capacité d'écriture répliquée égales).
- Mélange des deux versions — pointer les API legacy (
DescribeGlobalTable,UpdateGlobalTable) vers une table de version Current renvoie GlobalTableNotFoundException au lieu de fonctionner. - AWS CLI/SDK obsolète — une version antérieure au modèle 2019.11.21 ne peut pas piloter la gestion de réplicas basée sur
UpdateTable.
Comment le corriger
- Uniformise les tables membres entre toutes les régions — même nom et même schéma de clé, GSI concordants, streams activés avec nouvelles + anciennes images, et cibles de capacité d'écriture/d'auto scaling cohérentes.
- Vérifie l'état actuel avec
DescribeTablepar région (Current) ouDescribeGlobalTableSettings(une API réservée à Legacy) et corrige la dérive avecUpdateTableouUpdateGlobalTableSettingsrespectivement. - Migre Legacy → Current délibérément via le flux Update version de la console — il nécessite l'autorisation
dynamodb:UpdateGlobalTableversiondans chaque région de réplica, et les réplicas continuent de servir lectures et écritures pendant la migration. - Mets à jour ton AWS CLI/SDK vers une version récente avant de gérer des réplicas de version Current.
- Ajoute les réplicas à une table de base compatible — les réplicas de version Current sont ajoutés avec
UpdateTable(la table peut déjà contenir des données, mais la région cible ne doit pas déjà avoir une table portant ce nom) ; les réplicas legacy doivent démarrer vides.
Tu gères une table multi-région et tu veux comparer la configuration sans sauter d'une console à l'autre ? L'application de bureau DynoTable se connecte par région pour que tu puisses examiner le schéma et les index de chaque réplica au même endroit.
Mesure dans DynoTable
Compare schéma, GSI et réglages de flux d'une Région à l'autre avant de créer une table globale — change avec ⌘P, ouvre chaque réplica avec ⌘K, et déplie les panneaux Indexes et Stream côte à côte.
Estime le coût des écritures répliquées avec le calculateur de tarifs. Configure chaque Région sous Settings → Profiles avec Test Connection. Vois Se connecter à AWS et Installation.
Sources
- DynamoDB global tables versions (vérifié le 2026-07-13)
- CreateGlobalTable — Amazon DynamoDB API Reference (vérifié le 2026-07-13)
Erreurs liées
- ResourceInUseException — une table/région de réplica est déjà utilisée.
- ReplicaNotFoundException — une région de réplica référencée n'existe pas.
- Apprends : Tables globales DynamoDB
Références
- CreateGlobalTable — Amazon DynamoDB API Reference
- UpdateGlobalTable — Amazon DynamoDB API Reference
- UpdateTable — Amazon DynamoDB API Reference
- DynamoDB global tables versions (determining and upgrading) — Amazon DynamoDB Developer Guide
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.