【问题标题】:AWS query returns The provided key element does not match the schemaAWS 查询返回 提供的关键元素与架构不匹配
【发布时间】:2018-06-27 05:48:15
【问题描述】:

我是 AWS 的新手,我正在尝试使用查询更新 DynamoDB 中的值,但它在错误下方返回给我

提供的关键元素与架构不匹配

代码完成,响应如下所示

错误响应

    {
  "data": {
    "updateIsRead": null
  },
  "errors": [
    {
      "path": [
        "updateIsRead"
      ],
      "data": null,
      "errorType": "DynamoDB:AmazonDynamoDBException",
      "errorInfo": null,
      "locations": [
        {
          "line": 30,
          "column": 3
        }
      ],
      "message": "The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: 7ELPDK32SD0K9TGT31J03ANHVNVV4KQNSO5AEMVJF66Q9ASUAAJG)"
    }
  ]
}

查询

//I want to update the isRead key value to true of below messageId

    mutation UpdateISRead{
      updateIsRead(input:{messageId:"3253b0b4-6645-4df2-952f-93694cc70af3"}){
        messageId
      }
    }

架构

type Mutation {
   updateIsRead(input: MessageIDInput!): MessageRecipient
}

type MessageRecipient {
    messageId: ID!
    messageRecipientId: String!
    receiverId: String!
    isRead: Boolean!
}

Mutation.updateIsRead 的解析器

{
    "version" : "2017-02-28",
    "operation" : "UpdateItem",
    "key" : {
         "messageId" : $util.dynamodb.toDynamoDBJson($ctx.args.messageId)
    },
 "update" : {
         "expression" : "SET #fieldName = :fieldValue",
         "expressionNames" : {
              "#fieldName" : "isRead"
         },
         "expressionValues" : {
            ":fieldValue" : { "BOOL" : true }
         }
        }
}

非常感谢任何帮助。 提前致谢。

【问题讨论】:

  • 您的分区键和排序键属性和类型是什么?要了解进入 DynamoDB 控制台,请单击左侧菜单上的表,您应该会看到它显示在右侧。

标签: amazon-web-services amazon-dynamodb


【解决方案1】:

如果有人正在寻找上述问题的答案,我会通过以下更改来解决

  "messageId" : $util.dynamodb.toDynamoDBJson($ctx.args.messageId)

  "messageId" : $util.dynamodb.toDynamoDBJson($ctx.args.input.messageId)

我们需要将发送的数据作为输入,因此在添加 $ctx.args.input.messageId 后它解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 2021-08-26
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多