DynamoDB 保留字检查器
粘贴你的属性名,查看哪些与 DynamoDB 的保留字冲突,并复制一份能安全为它们设置别名的 ExpressionAttributeNames 映射。
为什么保留字很重要
DynamoDB 维护着一长串保留关键字,它不接受把这些词作为表达式内裸露的属性名。日常名称 — name、status、size、count、timestamp、year — 都在其中。直接引用其中之一,请求就会以 ValidationException 失败,而且通常是在运行时而非代码评审时。
修复方法是使用表达式属性名:一个代替真实名称的 # 占位符,搭配一份 ExpressionAttributeNames 映射。本检查器会不区分大小写地将你的名称与完整列表匹配,并自动为其中的保留字构建该映射,因此你可以直接把它粘贴到 GetItem、Query、Update 或 Delete 请求中。
设置别名是一个能避免一整类错误的小习惯 — 表达式属性名与值 深入讲解了这些占位符,而 Expression Builder 会在你构建时为你为每个名称设置别名。
常见问题
什么是 DynamoDB 保留字?
DynamoDB 保留了一大批关键字 — 大约 573 个 — 它们不能在表达式内直接用作属性名。像 name、status、timestamp、size 和 count 这样的名称都是保留字。如果你在投影、筛选、条件或更新表达式中直接引用其中之一,DynamoDB 会返回一个带有 “Attribute name is a reserved keyword” 消息的 ValidationException。
如何将保留字用作属性名?
用表达式属性名为它设置别名 — 一个以 # 开头并映射到真实名称的占位符。例如,在表达式中引用 #name,并传入 { "#name": "name" } 作为 ExpressionAttributeNames。本工具会为你输入的每个保留名称生成该映射,可直接粘贴到你的请求中。
保留字列表区分大小写吗?
不区分。DynamoDB 的保留字列表不区分大小写,因此 Name、name 和 NAME 都会被视为保留字 NAME。本检查器会不区分大小写地匹配,与 DynamoDB 完全一致。
我必须为每个属性名都设置别名吗?
只有保留字才需要别名,但许多团队习惯性地为每个名称都设置别名,这样就永远不会遇到该错误,表达式的读写也保持一致。为非保留名称设置别名始终是安全的。本工具会准确标出你的哪些名称是保留字,以便你自行决定。