Возврат запроса AWS Предоставленный ключевой элемент не соответствует схеме - PullRequest
0 голосов
/ 27 июня 2018

Я новичок в 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!
}

Resolver for 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 }
         }
        }
}

Любая помощь в этом очень ценится. Заранее спасибо.

1 Ответ

0 голосов
/ 11 июля 2018

Если кто-то ищет ответ на вышеуказанный вопрос, я решаю его, изменив значение ниже

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

до

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

Нам нужно принять отправленные данные в качестве входных данных, поэтому после добавления $ ctx.args.input.messageId это решило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...