ReplicaAlreadyExistsException

TL;DR: la regione che stai aggiungendo è già nel gruppo di replica della tabella globale. L'aggiunta non è idempotente, quindi una nuova esecuzione della stessa richiesta (riprova, distribuzione riprodotta, IaC alla deriva) fallisce una volta che la prima ha avuto esito positivo. Descrivi prima la tabella e crea solo le repliche che non sono presenti oppure considera questa eccezione come "già completata" e vai avanti.

Cosa significa

ReplicaAlreadyExistsException: The specified replica is already part of
the global table.

La gestione della replica è una modifica del piano di controllo con una precondizione difficile: "Crea" richiede che la regione sia assente, "Elimina" richiede che sia presente. Chiedere di creare "eu-west-1" quando "eu-west-1" replica già la tabella viola tale precondizione: lo stato desiderato esiste già.

Perché succede

  • Un passaggio di provisioning ripetuto o ripetuto: il primo tentativo è riuscito (forse dopo un timeout ha nascosto l'esito positivo) e il nuovo tentativo aggiunge nuovamente la stessa regione.
  • Deriva dell'infrastruttura come codice: la replica è stata aggiunta manualmente nella console, quindi la pipeline IaC tenta di aggiungerla nuovamente.
  • Due percorsi di automazione in competizione: distribuzioni parallele o processi di espansione della regione che inviano entrambi la stessa creazione di replica.

Come risolverlo

  1. Controlla il gruppo di replica prima di modificarlo:

    aws dynamodb describe-table --table-name orders \
      --query 'Table.Replicas[].RegionName'
  2. Rendi l'operazione idempotente: rileva questa eccezione durante la creazione (e ReplicaNotFoundException durante l'eliminazione) e trattala come un successo; la tabella è già nello stato desiderato:

    catch (e) {
      if (e.name === 'ReplicaAlreadyExistsException') return; // desired state reached
      throw e;
    }
  3. Riconcilia IaC con la realtà: importa la replica aggiunta manualmente nel tuo stack anziché consentire a ogni distribuzione di ritentare la creazione.

  4. Serializza le modifiche alla replica: un aggiornamento della replica alla volta per tabella; attendere che la tabella ritorni su "ACTIVE" (e che la nuova replica lasci "CREATING") prima della modifica successiva.

  5. Registra la regione a ogni tentativo di creazione. Quando IaC viene riprodotto, l'eccezione nomina la regione già esistente: importa quella replica nello stato invece di ricrearla.

Verificalo in DynoTable

Dopo che la creazione di una replica ha avuto esito positivo, conferma che fornisce dati, non solo che API li abbia accettati. Passa alla regione replica con ⌘P, apri la tabella con ⌘K e sfoglia gli elementi. DynoTable mostra la copia di ciascuna regione affiancata, quindi è ovvio un fallimento parziale silenzioso.

Prima di aggiungere un'altra regione, stima il costo di scrittura replicata in corso con il calcolatore dei prezzi. Configura i profili per regione in Impostazioni → Profili ed esegui Test connessione su ciascuno. Consulta Connetti a AWS e Installa. Considera "ReplicaAlreadyExistsException" come un successo quando la riproduzione IaC raggiunge lo stato desiderato: la regione si sta già replicando.

Fonti

Errori correlati

Riferimenti

Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale del AWS collegata sopra.

Lavora con DynamoDB senza la Console

Un client desktop veloce per DynamoDB che esegue il vero SQL che DynamoDB non può — JOINs, GROUP BY, aggregazioni — con modifica visuale e un agente AI sulle tue chiavi Bedrock.

Prova gratuita di 30 giorni, senza carta di credito — poi il piano Free senza limiti di tempo.