DynamoDB Ayrılmış Kelimeler Denetleyicisi
Hangilerinin DynamoDB'nin ayrılmış kelimeleriyle çakıştığını görmek için attribute adlarını yapıştır ve onlara güvenli bir şekilde takma ad veren bir ExpressionAttributeNames haritası kopyala.
@dynotable/dynamodb-reserved-words bu aracın arkasındaki açık kaynaklı (MIT) kitaplıktır.
Ayrılmış kelimeler neden önemli
DynamoDB, bir ifade içinde çıplak bir attribute adı olarak kabul etmeyeceği uzun bir ayrılmış anahtar kelime listesi tutar. Günlük adlar — name, status, size, count, timestamp, year — bu listede yer alır. Birine doğrudan başvur ve istek, genellikle incelemede değil çalışma zamanında bir ValidationException ile başarısız olur.
Çözüm bir expression attribute name'dir: gerçek adın yerini alan bir # yer tutucu, bir ExpressionAttributeNames haritasıyla eşleştirilir. Bu denetleyici, adlarını tam listeye karşı büyük/küçük harfe duyarsız eşleştirir ve ayrılmış olanlar için o haritayı otomatik olarak oluşturur, böylece onu doğrudan bir GetItem, Query, Update veya Delete isteğine yapıştırabilirsin.
Takma ad verme, koca bir hata sınıfını önleyen küçük bir alışkanlıktır — expression attribute names ve values yer tutucuları ayrıntılı olarak açıklar ve Expression Builder sen oluştururken her ada senin için takma ad verir.
DynamoDB ayrılmış kelimelerinin tam listesi
AWS'nin yayımladığı haliyle tüm 573 ayrılmış kelime. Eşleştirme büyük/küçük harfe duyarsızdır, bu yüzden `size`, `Size` ve `SIZE` hepsi ayrılmıştır. Bu listedeki herhangi bir attribute adı, bir ifadede kullanılmadan önce bir expression attribute name ile takma adlandırılmalıdır.
AWS'nin "Reserved words in DynamoDB" referansından birebir alınmıştır. Takma adları ve senin için oluşturulan ExpressionAttributeNames haritasını almak için attribute adlarını yukarıdaki denetleyiciye yapıştır.
Sıkça sorulan sorular
DynamoDB ayrılmış kelimeleri nelerdir?
DynamoDB, bir ifade içinde doğrudan attribute adı olarak kullanılamayan büyük bir anahtar kelime listesi — yaklaşık 573 — ayırır. name, status, timestamp, size ve count gibi adların hepsi ayrılmıştır. Birine bir projeksiyon, filtre, koşul veya güncelleme ifadesinde doğrudan başvurursan, DynamoDB “Attribute name is a reserved keyword” mesajıyla bir ValidationException döndürür.
Ayrılmış bir kelimeyi attribute adı olarak nasıl kullanırım?
Onu bir expression attribute name ile takma adlandır — # ile başlayan ve gerçek ada eşlenen bir yer tutucu. Örneğin, ifadende #name'e başvur ve { "#name": "name" } olan ExpressionAttributeNames'i geçir. Bu araç, girdiğin her ayrılmış ad için o haritayı oluşturur ve isteğine yapıştırmaya hazırdır.
Ayrılmış kelimeler listesi büyük/küçük harfe duyarlı mı?
Hayır. DynamoDB'nin ayrılmış kelimeler listesi büyük/küçük harfe duyarlı değildir, bu yüzden Name, name ve NAME'in hepsi ayrılmış kelime NAME olarak ele alınır. Bu denetleyici, tıpkı DynamoDB gibi büyük/küçük harfe duyarsız eşleştirir.
Her attribute adına takma ad vermek zorunda mıyım?
Yalnızca ayrılmış olanlar bir takma ad gerektirir, ancak birçok ekip hatayla hiç karşılaşmamak ve ifadelerin tutarlı okunması için her ada bir alışkanlık olarak takma ad verir. Ayrılmamış bir ada takma ad vermek her zaman güvenlidir. Bu araç, adlarından tam olarak hangilerinin ayrılmış olduğunu işaretler, böylece karar verebilirsin.