更新 DynamoDB 时收到 ValidationException

Received ValidationException when update DynamoDB

我在我的 dynamodb 中创建了一个项目,然后我的 nodejs lambda 函数将不断更新该项目中的 access_token 值。以下是架构

{
  "service": {
    "S": "perform"
  },
  "access_token": {
    "S": "xxxxxxxxxx"
  }
}

下面是我将发送给 dynamodb 更新函数的 dynamodb 参数

{
    "TableName": "Access-Token",
    "Key": {
        "service": "perform"
    },
    "UpdateExpression": "set access_token = :token",
    "ExpressionAttributeValues": {
        ":token": "xxxxxxxxxxxx"
    },
    "ReturnValues": "UPDATED_NEW"
}

但是当我 运行 lambda 函数时,我收到以下错误。需要这方面的帮助和指导

ValidationException: The provided key element does not match the schema

您可能正在尝试插入一条不包含所有关键元素的记录。

如果您的主键是 partition/hash 键和 range/sort 键的组合,您需要在更新或放置参数的键属性中包含这两个键。

看起来键 service 是您的 分区键,键 access_token 是您的 排序键 .

要进行更新,您需要发送两个密钥:

"Key": {
    "service": "perform",
    "access_token": "token"
}

这样,如果尝试更新 access_token 您将无法更新,因为 access_token 属性是密钥的一部分。

如果您想更新 access_token,您将需要使用不同的排序键创建另一个 table without/or,并使用 access_token 作为属性。