DynamoDB-Reserved-Words-Checker
Füge deine Attributnamen ein, um zu sehen, welche mit den reservierten Wörtern von DynamoDB kollidieren, und kopiere eine ExpressionAttributeNames-Map, die sie sicher aliasiert.
Warum reservierte Wörter wichtig sind
DynamoDB führt eine lange Liste reservierter Schlüsselwörter, die es nicht als bloßen Attributnamen innerhalb eines Ausdrucks akzeptiert. Alltägliche Namen — name, status, size, count, timestamp, year — stehen darauf. Referenziere eines direkt, und die Anfrage schlägt mit einer ValidationException fehl, meist zur Laufzeit statt im Review.
Die Lösung ist ein Expression Attribute Name: ein #-Platzhalter, der für den echten Namen einsteht, gepaart mit einer ExpressionAttributeNames-Map. Dieser Checker gleicht deine Namen ohne Berücksichtigung der Groß-/Kleinschreibung gegen die vollständige Liste ab und erstellt diese Map für die reservierten Namen automatisch, sodass du sie direkt in eine GetItem-, Query-, Update- oder Delete-Anfrage einfügen kannst.
Aliasing ist eine kleine Gewohnheit, die eine ganze Klasse von Fehlern vermeidet — Expression Attribute Names und Values erklärt die Platzhalter im Detail, und der Expression Builder aliasiert jeden Namen für dich, während du baust.
Häufig gestellte Fragen
Was sind reservierte DynamoDB-Wörter?
DynamoDB reserviert eine große Liste von Schlüsselwörtern — etwa 573 —, die nicht direkt als Attributnamen innerhalb eines Ausdrucks verwendet werden können. Namen wie name, status, timestamp, size und count sind alle reserviert. Wenn du eines direkt in einer Projection, einem Filter, einer Condition oder einer Update-Expression referenzierst, gibt DynamoDB eine ValidationException mit der Meldung „Attribute name is a reserved keyword“ zurück.
Wie verwende ich ein reserviertes Wort als Attributnamen?
Aliasiere es mit einem Expression Attribute Name — einem Platzhalter, der mit # beginnt und auf den echten Namen verweist. Referenziere zum Beispiel #name in deinem Ausdruck und übergib ExpressionAttributeNames von { "#name": "name" }. Dieses Tool erzeugt diese Map für jeden reservierten Namen, den du eingibst, bereit zum Einfügen in deine Anfrage.
Wird bei der Liste reservierter Wörter die Groß-/Kleinschreibung berücksichtigt?
Nein. Die Liste reservierter Wörter von DynamoDB berücksichtigt keine Groß-/Kleinschreibung, sodass Name, name und NAME alle als das reservierte Wort NAME behandelt werden. Dieser Checker gleicht ohne Berücksichtigung der Groß-/Kleinschreibung ab, genau wie DynamoDB.
Muss ich jeden Attributnamen aliasieren?
Nur die reservierten benötigen einen Alias, aber viele Teams aliasieren aus Gewohnheit jeden Namen, damit sie nie auf den Fehler stoßen und die Ausdrücke einheitlich lesbar sind. Einen nicht reservierten Namen zu aliasieren ist immer sicher. Dieses Tool markiert genau, welche deiner Namen reserviert sind, damit du entscheiden kannst.