DynamoDB LimitExceededException

TL;DR — Aynı anda çok fazla kontrol düzlemi işlemi gönderdiniz (ya da bir tablo/hesap sınırına çarptınız). Hesabınız genelinde bir seferde en fazla 500 tablo ve indeks CREATING/UPDATING/DELETING durumunda olabilir. Tablo işlemlerinizi sıralı yürütün, ACTIVE için bekleyin ve geri çekilmeyle yeniden deneyin.

Ne anlama gelir

LimitExceededException: Too many operations for a given subscriber.

Bu bir kontrol düzlemi hatasıdır — GetItem/PutItem/Query'den değil, CreateTable, UpdateTable, DeleteTable, indeks oluşturma, geri yüklemeler ve benzeri çağrılardan gelir. DynamoDB sana bir eşzamanlılık ya da hesap sınırını aştığınızı söylüyor. Bu bir HTTP 400'dür ve AWS onu yeniden denenebilir olarak listeler — süren işlemler bittikçe koşul temizlenir.

Neden olur

  • Çok fazla eşzamanlı tablo/indeks işlemiCREATING, DELETING veya UPDATING durumundaki tabloların ve indekslerin kümülatif sayısı hesap/Bölge başına 500'ü aşamaz. (Hesap başına en fazla 500 eşzamanlı tablo işlemine izin verilir — CreateTable, UpdateTable, DeleteTable, UpdateTimeToLive, RestoreTableFromBackup, RestoreTableToPointInTime — ve ikincil indeksli tablolar oluştururken yalnızca 250'ye kadar eşzamanlı istek.)
  • Toplu yığın dağıtımları — birçok tabloyu (ya da birçok GSI'yi) aynı anda oluşturan ya da yıkan CloudFormation/CDK/Terraform, eşzamanlılık bütçesini aşar.
  • Hesap kaynak kotaları — hesap/Bölge başına 2.500 tabloluk yumuşak kotaya ya da 50 eşzamanlı içe aktarma işi sınırına çarpmak.
  • DynamoDB Streams yanlış kullanımıGetRecords'u 1000'den büyük bir Limit ile çağırmak ya da aynı streams parçasından aynı anda 2'den fazla sürecin okuması.
  • Not: aynı tablo hâlâ UPDATING iken gönderilen ikinci bir UpdateTable, bu hata olarak değil, ResourceInUseException olarak belirir — ama her ikisi de "önce ACTIVE için bekle" anlamına gelir.

Nasıl düzeltilir

  1. Kontrol düzlemi işlemlerini sıralı yürütün — ona bir sonraki değişikliği göndermeden önce bir tablonun (ve her GSI'nin) ACTIVE olmasını bekleyin. DescribeTable'ı yoklayın ve TableStatus === 'ACTIVE' üzerinde koşullandırın.
  2. Üstel geri çekilmeyle yeniden deneyin — sınır geçicidir; süren işlemler boşaldığında geri çekilmiş bir yeniden deneme genellikle başarılı olur.
  3. Toplu dağıtımları kısıtlayın — büyük bir yığını bölün, böylece yüzlerce tabloyu/GSI'yi aynı anda oluşturmayın ya da hepsi birlikte tetiklenmesin diye açık DependsOn sıralaması ekleyin.
  4. Hizmet kotalarınızı kontrol edin — hesap başına tablo sınırına yakınsanız, sonsuza kadar yeniden denemek yerine Service Quotas'ta bir kota artışı isteyin.
  5. GSI'leri birer birer ekleyinUpdateTable işlemi başına yalnızca bir global ikincil indeks oluşturabilir veya silebilirsiniz, bu yüzden indeks değişikliklerini sıralı yürütün ve her geri doldurmayı bekleyin.

SSS

DynamoDB'de LimitExceededException'ı nasıl düzeltirim? Kontrol düzlemi işlemlerini (CreateTable/UpdateTable/DeleteTable/indeks değişiklikleri) paralel göndermeyi bırakın. Bir sonraki değişiklikten önce her tablo ve indeksin ACTIVE'e ulaşmasını bekleyin, CREATING/UPDATING/DELETING durumundaki tabloların sayısını hesap sınırının altında tutun ve üstel geri çekilmeyle yeniden deneyin.

LimitExceededException bir kısıtlama hatası mı? Bu, veri düzlemi kısıtlaması değil, bir kontrol düzlemi eşzamanlılık/sınır hatasıdır. Veri düzlemi kısıtlaması bunun yerine ProvisionedThroughputExceededException, ThrottlingException veya RequestLimitExceeded olarak belirir.

DynoTable’ı Local’e yönelt

DynoTable bir veri düzlemi istemcisidir — GetItem, Query ve Scan veri tüketmez kontrol düzlemi eşzamanlılık bütçesi bu hatayı korur. Bir dağıtım komut dosyası isabet ederse LimitExceededException tabloları oluştururken tablolara göz atmak için DynoTable tuşunu kullanın zaten ACTIVE'e ulaştı ve şemayı Tablo ayarları'ndan doğrulayın. IaC'niz yeniden dener. Yerel yığınlar için DynamoDB Local'i -sharedDb ile çalıştırın ve Yerel profil (Running DynamoDB Local) aracılığıyla bağlanın, böylece kısmi dağıtımları her GSI'nin AWS'te bitmesini beklemeden inceleyebilirsiniz. single-table design planner, meşgul bir hesapta bir CreateTable daha tetiklemeden önce tablo şekillerini çizmeye yardımcı olur.

İlgili hatalar

Kaynaklar

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

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.