使用AWS CLI扫描DynamoDB时因type为保留关键字报错求助
解决DynamoDB扫描时保留关键字报错的方法
type是DynamoDB的保留关键字,直接在过滤表达式中使用会触发Invalid FilterExpression : Attribute name is a reserved keyword错误。解决这个问题最直接的方式是使用表达式属性名来替代保留关键字,具体修正后的命令如下:
aws dynamodb scan --table-name my_table \ --filter-expression "#t = :address_type" \ --expression-attribute-names '{"#t": "type"}' \ --expression-attribute-values '{":address_type": {"S": "Home"}}'
关键修改点:
- 新增
--expression-attribute-names参数,用占位符#t映射实际属性名type,避开保留关键字的命名冲突 - 过滤表达式中用
#t替换原来的type - 修正
--expression-attribute-values的键名,加上冒号:address_type,与过滤表达式中的占位符保持一致
如果允许修改表结构,也可以直接将属性名type改为非保留关键字(比如address_type),但这种方式需要同步修改现有数据,操作成本较高,优先推荐使用表达式属性名的方案。
内容的提问来源于stack exchange,提问作者nohardfeelings
相关产品推荐
相关产品推荐

