DynamoDB cannot access stream — stream is not enabled
TL;DR — Bir tüketici (bir Lambda olay kaynağı eşlemesi, bir Kinesis Adapter okuyucusu ya da çıplak bir DescribeStream/GetShardIterator çağrısı), Streams'in kapalı olduğu bir tabloda bir DynamoDB stream'i okumaya çalıştı ya da Streams yeniden etkinleştirilmeden önceki bayat bir stream ARN kullandı. Tabloda DynamoDB Streams'i etkinleştirin ve tüketiciyi tablonun mevcut LatestStreamArn'ına yöneltin.
Ne anlama gelir
Cannot access stream arn:aws:dynamodb:us-east-1:111122223333:table/Orders/stream/... .
Please ensure the ARN is correct and the stream is enabled.
DynamoDB Streams must be enabled on the table.DynamoDB Streams, isteğe bağlı bir özelliktir. Bir tablonun yalnızca StreamEnabled: true ile bir StreamSpecification ayarladığınızda bir stream'i olur. Bir okuyucu — çoğunlukla bir Lambda olay kaynağı eşlemesi — aktif stream'i olmayan bir tabloya (ya da artık var olmayan bir ARN'ye) bağlanmışsa, eşleme takılamaz ve stream'e erişemediğini bildirir.
Neden olur
- Tabloda Streams hiç etkinleştirilmedi ama bir tüketici bir tane bekliyor.
- Streams devre dışı bırakıldı ve yeniden etkinleştirildi — her etkinleştirme yepyeni bir stream ARN (yeni bir zaman damgası soneki ile) üretir. Eski ARN'yi tutan bir tüketici, en fazla 24 saat daha okunabilir kalan devre dışı bir stream'i okuyor, sonra kayıtları sona eriyor.
- Altyapı-kod kayması — bir CDK/CloudFormation/Terraform tüketicisi, stream yapılandırmasını yaymayan bir tabloya ad/ARN ile başvuruyor, dolayısıyla araçlar Streams'in kapalı olduğunu düşünüyor.
- Yanlış stream ARN — gerçek
LatestStreamArnyerine tablo ARN'ini ya da bir.../stream/latestyer tutucusunu kullanmak.
Nasıl düzeltilir
- Tabloda Streams'i etkinleştirin.
UpdateTable, konsol ya da IaC'niz aracılığıylaStreamSpecification{ StreamEnabled: true, StreamViewType: NEW_AND_OLD_IMAGES }(ya da tüketicinizin ihtiyaç duyduğu görünüm türü) ayarlayın. - Mevcut stream ARN'ini okuyun.
DescribeTable'ı çağırın veLatestStreamArnalanını kullanın — asla elle oluşturulmuş ya da önbelleğe alınmış bir ARN'yi değil. - Herhangi bir devre dışı bırakma/etkinleştirme döngüsünden sonra tüketiciyi yeni ARN'ye yeniden yöneltin; eski stream'e bağlanmışsa Lambda olay kaynağı eşlemesini yeniden oluşturun.
- Okuma izni verin — tüketicinin rolü stream ARN'inde
dynamodb:DescribeStream,GetRecords,GetShardIteratorveListStreams'e ihtiyaç duyar. - Tablo ile stream ARN'ini karıştırmayın — stream ARN'i
/stream/<timestamp>ile biter, tablo ARN'i bitmez.
Tabloyu ve stream yapılandırmasını konsol olmadan mı incelemeniz gerekiyor? DynoTable masaüstü uygulaması, stream durumunu tablonun yanında yüzeye çıkarır, böylece bir okuyucuyu ona yöneltmeden önce açık olduğunu doğrulayabilirsiniz.
DynoTable’da yeniden denemeden önce
Lambda olay kaynağı eşlemesini eklemeden önce DynoTable'daki tabloyu açın ve Akışların etkinleştirildiğini ve hangi StreamViewType'nin ayarlandığını onaylayın (tablo ayrıntıları). DynoTable şemanın yanında akış yapılandırmasını gösterir, böylece AWS konsolundan geçmek zorunda kalmazsınız.
Akışları devre dışı bırakıp yeniden etkinleştirdikten sonra ARN değişir; DynoTable'deki tabloyu yenileyin ve AWS'den (LatestStreamArn CLI/DescribeTable aracılığıyla) mevcut akış kimliğini tüketiciye kopyalayın. Doğru hesap/bölge profilinde kalmak için ⌘P'yi kullanın. Günlük ürün denetimi DynoTable'da kalıyor; akış tüketicileri Lambda/Kinesis araçlarında kalır. query builder, Akışlar geçişinden sonra tablonun hâlâ anahtarlı okumalar sunduğunu doğrulamaya yardımcı olur.
Kaynaklar
- Change data capture for DynamoDB Streams (2026-07-13 tarihinde doğrulandı)
- Process Amazon DynamoDB records with Lambda (2026-07-13 tarihinde doğrulandı)
İlgili hatalar
- ResourceNotFoundException — tablo ya da stream ARN'i hiç yok.
- The ARN provided is invalid — hatalı biçimlendirilmiş bir stream ARN'i.
- Öğrenin: DynamoDB Streams
Kaynaklar
- Change data capture for DynamoDB Streams — Amazon DynamoDB Developer Guide
- Process Amazon DynamoDB records with Lambda — AWS Lambda Developer Guide
- StreamSpecification — Amazon DynamoDB API Reference
- DescribeTable — Amazon DynamoDB API Reference
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.