DynamoDB ReplicaNotFoundException

TL;DR: la replica della regione che stai tentando di aggiornare o rimuovere non fa parte di questa tabella globale. Di solito si tratta di un nome di regione sbagliato, di una replica già rimossa o di una chiamata che mette in competizione un altro aggiornamento della replica in volo. Conferma le repliche correnti con "DescribeTable", quindi scegline una esistente.

Cosa significa

ReplicaNotFoundException: The specified replica is no longer part of the global table.

Le operazioni sulle tabelle globali (UpdateGlobalTable o UpdateTable con ReplicaUpdates/Delete) indirizzano una replica in base alla sua regione AWS. Questo HTTP 400 significa che la regione che hai nominato non è attualmente una replica della tabella globale. È lato client e non è possibile riprovare finché non si sceglie come target una replica reale.

Perché succede

  • Codice regione errato — "us-east-2" quando la replica si trova in "us-east-1" o in una regione che non è mai stata aggiunta.
  • Replica già rimossa: un'eliminazione rispetto a una regione già eliminata dalla tabella da un aggiornamento precedente.
  • Modifiche alle repliche sovrapposteUpdateTable non può essere eseguito mentre la tabella è ancora in AGGIORNAMENTO da una modifica precedente e AWS consiglia di inviare una richiesta separata per ogni aggiunta/rimozione di replica; l'automazione delle corse può prendere di mira una replica di un altro lavoro già rimosso.
  • Confondere il primario con una replica: operare su una regione che non ospita alcuna replica di questa tabella.
  • Confusione di versioni: mescola la versione legacy 2017.11.29 (GlobalTable) e le attuali API 2019.11.21 (replica su tabella).

Come risolverlo

  1. Elenca le repliche attuali e il loro stato:
    aws dynamodb describe-table --table-name <Table> \
      --query "Table.Replicas[].{Region:RegionName,Status:ReplicaStatus}"
  2. Scegli come target una regione effettivamente presente nell'elenco: copia esattamente il codice regionale.
  3. Modifica una replica alla volta. Attendi che la tabella ritorni su "ACTIVE" (e che la precedente aggiunta/rimozione venga completata) prima del prossimo aggiornamento.
  4. Rimuovere una replica che è già scomparsa? Non c'è niente da fare: considera ReplicaNotFoundException come già soddisfatto per l'eliminazione.
  5. Utilizza l'attuale (21.11.2019) API: gestisci le repliche tramite UpdateTable ReplicaUpdates, non la tabella globale legacy API.

Gestire tabelle tra regioni? L'DynoTable app desktop mostra le repliche di ogni tabella e il relativo stato, così puoi agire su una regione che fa effettivamente parte della tabella globale.

Controlla prima in DynoTable

Apri la tabella in DynoTable e controlla le statistiche della tabella/l'elenco delle repliche per le regioni effettivamente esistenti prima di eseguire UpdateTable ReplicaUpdates. Cambia profilo con ⌘P in modo da visualizzare l'account proprietario della tabella globale. Quando una regione di replica scompare, DynoTable la omette semplicemente: non c'è alcuna scheda console obsoleta su cui fare clic.

Effettua un controllo incrociato del codice regionale con l'elenco attivo, quindi emetti nuovamente la modifica del piano di controllo da IaC o CLI. Per le letture quotidiane tra repliche, mantieni un profilo DynoTable per regione e cambia con ⌘1⌘9 invece di indovinare gli ARN. Il generatore di query rimane nella regione del profilo attivo, quindi non mescolare mai una query us-east-1 con un nome di tabella us-west-2.

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.