ReplicaAlreadyExistsException

TL;DR — Eklediğiniz Bölge, global tablonun çoğaltma grubunda zaten var. Ekleme idempotent değildir, dolayısıyla aynı isteğin (yeniden deneme, yeniden oynatılan dağıtım, kaymış IaC) yeniden çalıştırılması, ilki başarılı olduğunda başarısız olur. Önce tabloyu tanımlayın ve yalnızca orada olmayan çoğaltmaları oluşturun — ya da bu istisnayı "zaten yapıldı" olarak ele alın ve devam edin.

Ne anlama gelir

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

Çoğaltma yönetimi, kesin bir ön koşulu olan bir kontrol düzlemi değişikliğidir: Create, Bölgenin yok olmasını gerektirir, Delete onun mevcut olmasını gerektirir. eu-west-1 zaten tabloyu çoğaltırken eu-west-1 oluşturmayı istemek, o ön koşulu ihlal eder — istediğiniz durum zaten var.

Neden olur

  • Yeniden denenmiş ya da yeniden oynatılmış bir tahsis adımı — ilk deneme başarılı oldu (belki bir zaman aşımı başarıyı gizledikten sonra) ve yeniden deneme aynı Bölgeyi yeniden ekler.
  • Altyapı-kod kayması — çoğaltma konsolda elle eklendi, sonra IaC hattı onu tekrar eklemeye çalışıyor.
  • Yarışan iki otomasyon yolu — paralel dağıtımlar ya da bölge genişletme işleri, her ikisi de aynı çoğaltma oluşturmasını gönderiyor.

Nasıl düzeltilir

  1. Onu değiştirmeden önce çoğaltma grubunu kontrol edin:

    aws dynamodb describe-table --table-name orders \
      --query 'Table.Replicas[].RegionName'
  2. İşlemi idempotent yapın — oluşturmada bu istisnayı (ve silmede ReplicaNotFoundException'ı) yakalayın ve onu başarı olarak ele alın; tablo zaten istenen durumda:

    catch (e) {
      if (e.name === 'ReplicaAlreadyExistsException') return; // desired state reached
      throw e;
    }
  3. IaC'yi gerçeklikle uzlaştırın — her dağıtımın oluşturmayı yeniden denemesine izin vermek yerine elle eklenen çoğaltmayı yığınınıza içe aktarın.

  4. Çoğaltma değişikliklerini sıralı yürütün — tablo başına bir seferde bir çoğaltma güncellemesi; bir sonraki değişiklikten önce tablonun ACTIVE'e dönmesini (ve yeni çoğaltmanın CREATING'den çıkmasını) bekleyin.

Bir çoğaltmanın gerçekten veri sunduğunu — yalnızca API'nin onu kabul ettiğini değil — doğrulamak, tabloya-bakma işidir: DynoTable masaüstü uygulaması her Bölgenin çoğaltmasına doğrudan göz atar ve DynamoDB fiyatlandırma hesaplayıcısı, ek Bölgenin eklediği süregelen maliyeti gösterir.

İlgili hatalar

References

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Console olmadan DynamoDB ile çalışın

DynoTable, DynamoDB için hızlı bir masaüstü istemcisidir — tablolara göz atın, SQL tarzı sorgular çalıştırın ve item'ları yerel olarak düzenleyin.