Herramienta gratuita

Comprobador de palabras reservadas de DynamoDB

Pega tus nombres de atributos para ver cuáles colisionan con las palabras reservadas de DynamoDB, y copia un mapa ExpressionAttributeNames que los referencie con alias de forma segura.

Nombres de atributos

Introduce un nombre de atributo por línea (también valen comas y espacios). Cada uno se comprueba, sin distinguir mayúsculas, contra la lista completa de palabras reservadas de DynamoDB.

4 de 6 nombres están reservados y deben referenciarse con un alias.
  • name#nameReservado
  • status#statusReservado
  • timestamp#timestampReservado
  • userIdOK
  • count#countReservado
  • emailOK
ExpressionAttributeNames
{
  "#name": "name",
  "#status": "status",
  "#timestamp": "timestamp",
  "#count": "count"
}

Referencia cada nombre reservado por su alias # en tu expresión, y pasa este mapa como ExpressionAttributeNames.

Por qué importan las palabras reservadas

DynamoDB mantiene una larga lista de palabras clave reservadas que no aceptará como nombre de atributo sin alias dentro de una expresión. Nombres cotidianos —name, status, size, count, timestamp, year— están en ella. Referencia uno directamente y la solicitud falla con una ValidationException, normalmente en tiempo de ejecución en lugar de en la revisión.

La solución es un expression attribute name: un marcador de posición # que sustituye al nombre real, junto con un mapa ExpressionAttributeNames. Este comprobador coincide tus nombres sin distinguir mayúsculas contra la lista completa y construye ese mapa para los reservados automáticamente, así que puedes pegarlo directamente en una solicitud GetItem, Query, Update o Delete.

Usar alias es un pequeño hábito que evita toda una clase de errores: los expression attribute names y values explica en profundidad los marcadores de posición, y el Expression Builder usa un alias para cada nombre por ti mientras construyes.

Preguntas frecuentes

¿Qué son las palabras reservadas de DynamoDB?

DynamoDB reserva una larga lista de palabras clave —alrededor de 573— que no se pueden usar directamente como nombres de atributos dentro de una expresión. Nombres como name, status, timestamp, size y count están todos reservados. Si referencias uno directamente en una proyección, filtro, condición o expresión de actualización, DynamoDB devuelve una ValidationException con un mensaje «Attribute name is a reserved keyword».

¿Cómo uso una palabra reservada como nombre de atributo?

Referéncialo con un expression attribute name: un marcador de posición que empieza por # y se asigna al nombre real. Por ejemplo, referencia #name en tu expresión y pasa un ExpressionAttributeNames de { "#name": "name" }. Esta herramienta genera ese mapa para cada nombre reservado que introduzcas, listo para pegar en tu solicitud.

¿La lista de palabras reservadas distingue mayúsculas y minúsculas?

No. La lista de palabras reservadas de DynamoDB no distingue mayúsculas y minúsculas, así que Name, name y NAME se tratan todas como la palabra reservada NAME. Este comprobador hace la coincidencia sin distinguir mayúsculas, exactamente igual que DynamoDB.

¿Tengo que usar un alias para cada nombre de atributo?

Solo los reservados requieren un alias, pero muchos equipos usan un alias para cada nombre por costumbre, así nunca se topan con el error y las expresiones se leen de forma coherente. Usar un alias en un nombre no reservado siempre es seguro. Esta herramienta señala exactamente cuáles de tus nombres están reservados para que puedas decidir.

Trabaja con DynamoDB sin la Consola

DynoTable es un cliente de escritorio rápido para DynamoDB: explora tablas, ejecuta consultas estilo SQL y edita Items localmente.