AWS dynamoDB - batchWrite - 提供的关键元素与架构不匹配

Posted

技术标签:

【中文标题】AWS dynamoDB - batchWrite - 提供的关键元素与架构不匹配【英文标题】:AWS dynamoDB - batchWrite - The provided key element does not match the schema 【发布时间】:2021-05-12 03:08:31 【问题描述】:

我正在尝试在我的 dynamodb 表中写入一行:

使用此节点代码

   await this.dynamoDocumentClient.batchWrite(
     "RequestItems":
       "Delivery_Cost_By_PostCode":[
         
           "PutRequest":
             "Item":
               "postcode":
                 "N":"1234"
               
             
           
         ]
     
   ).promise();

但我收到此错误ValidationException: The provided key element does not match the schema。我不确定为什么。我已经阅读了syntax 资源

【问题讨论】:

你用的是什么 JS 库? this.dynamoDocumentClient 是什么? 嗨 Phil,它是 npmjs.com/package/serverless-dynamodb-seed 的一部分,不过我为 github.com/arielschvartz/serverless-dynamodb-seed/blob/master/… 硬编码数据,只是为了测试 this._dynamoDocumentClient = new this.provider.sdk.DynamoDB.DocumentClient( service: this. dynamodb, ); 【参考方案1】:

移除 1234 附近的字符串,修复它:)

await this.dynamoDocumentClient.batchWrite(
     "RequestItems":
       "Delivery_Cost_By_PostCode":[
         
           "PutRequest":
             "Item":
               "postcode":
                 "N":1234
               
             
           
         ]
     
   ).promise();

【讨论】:

以上是关于AWS dynamoDB - batchWrite - 提供的关键元素与架构不匹配的主要内容,如果未能解决你的问题,请参考以下文章

用于DynamoDB batchWrite调用的EC2主机类型。

TypeError:AWS.DynamoDB.DocumentClient 不是构造函数

使用 AWS Java DynamoDB 流 Kinesis 适配器处理 DynamoDB 流

使用go在dynamodb中创建项目

AWS - dynamoDB 价格和使用情况

Terraform + Dynamodb - 了解 aws_appautoscaling_target 和 aws_appautoscaling_policy