Verificador de Palavras Reservadas do DynamoDB
Cole seus nomes de atributos para ver quais colidem com as palavras reservadas do DynamoDB e copie um mapa ExpressionAttributeNames que cria alias para eles com segurança.
Por que as palavras reservadas importam
O DynamoDB mantém uma longa lista de palavras-chave reservadas que ele não aceita como nome de atributo puro dentro de uma expressão. Nomes do dia a dia — name, status, size, count, timestamp, year — estão nela. Referencie um diretamente e a requisição falha com uma ValidationException, geralmente em tempo de execução, e não na revisão.
A solução é um expression attribute name: um placeholder # que substitui o nome real, combinado com um mapa ExpressionAttributeNames. Este verificador faz a correspondência dos seus nomes sem diferenciar maiúsculas de minúsculas contra a lista completa e monta esse mapa para os reservados automaticamente, então você pode colá-lo direto em uma requisição GetItem, Query, Update ou Delete.
Criar aliases é um pequeno hábito que evita toda uma classe de erros — expression attribute names e values explica os placeholders em profundidade, e o Expression Builder cria um alias para cada nome enquanto você monta.
Perguntas frequentes
O que são palavras reservadas do DynamoDB?
O DynamoDB reserva uma longa lista de palavras-chave — cerca de 573 — que não podem ser usadas diretamente como nomes de atributos dentro de uma expressão. Nomes como name, status, timestamp, size e count são todos reservados. Se você referenciar um deles diretamente em uma projeção, filtro, condição ou update expression, o DynamoDB retorna uma ValidationException com a mensagem “Attribute name is a reserved keyword”.
Como uso uma palavra reservada como nome de atributo?
Crie um alias com um expression attribute name — um placeholder que começa com # e mapeia para o nome real. Por exemplo, referencie #name na sua expressão e passe ExpressionAttributeNames de { "#name": "name" }. Esta ferramenta gera esse mapa para cada nome reservado que você inserir, pronto para colar na sua requisição.
A lista de palavras reservadas diferencia maiúsculas de minúsculas?
Não. A lista de palavras reservadas do DynamoDB não diferencia maiúsculas de minúsculas, então Name, name e NAME são todos tratados como a palavra reservada NAME. Este verificador faz a correspondência sem diferenciar maiúsculas de minúsculas, exatamente como o DynamoDB.
Preciso criar um alias para cada nome de atributo?
Apenas os reservados exigem um alias, mas muitas equipes criam um alias para todos os nomes por hábito, de modo que nunca esbarram no erro e as expressões ficam consistentes. Criar um alias para um nome não reservado é sempre seguro. Esta ferramenta sinaliza exatamente quais dos seus nomes são reservados para que você possa decidir.