DynamoDB 简单 UpdateItem 抛出“提供的关键元素与架构不匹配”ValidationException

Posted

技术标签:

【中文标题】DynamoDB 简单 UpdateItem 抛出“提供的关键元素与架构不匹配”ValidationException【英文标题】:DynamoDB simple UpdateItem throwing "The provided key element does not match the schema" ValidationException 【发布时间】:2017-05-22 20:12:19 【问题描述】:

我正在尝试更新仅具有 Hashkey(threadId) 的 DynamoDB 表 (thread1) 中的字符串字段。 threadId = "AA" 的文档肯定存在并且还具有 field1 属性。

当使用以下正文映射模板调用 API 网关的 UpdateItem POST 时,我收到 “提供的关键元素与架构不匹配” ValidationException。


  "TableName": "thread1",
  "Key": 
    "HashKeyElement": 
      "S": "AA"
    
  ,
  "AttributeUpdates": 
    "field1": 
      "Value": 
        "S": "Worked!"
      
    
  

我也尝试过使用 UpdateExpression 进行相同的操作,但也出现了同样的错误。

【问题讨论】:

GetItem POST 也有同样的问题。 【参考方案1】:

如果您的 hashkey 列名为“threadId”,您的更新应如下所示:


  "TableName": "thread1",
  "Key": 
    "threadId": "AA"
  ,
  "AttributeUpdates": 
    "field1": 
      "Value": "Worked!"
    
  

【讨论】:

谢谢!将其更改为 "Key": "threadId": "S": "AA" 后它起作用了

以上是关于DynamoDB 简单 UpdateItem 抛出“提供的关键元素与架构不匹配”ValidationException的主要内容,如果未能解决你的问题,请参考以下文章

EB Worker cron.yaml - 无权执行:dynamodb:UpdateItem

DynamoDB 有条件写入

带和/或不带类型的 AWS DynamoDB 数据?

“sls dynamodb start”抛出 spawn java ENOENT

使用 DynamoDB 和 Graal 自定义运行时的 Micronaut 无服务器应用程序抛出无法构造 com.amazonaws.partitions.model.Partitions 的实例

setCellFactory覆盖updateItem和换行文本