我在dynamodb中创建了一个项,然后我的nodejs函数将继续更新这个项中的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:提供的键元素与模式
不匹配
发布于 2022-02-24 10:52:37
很可能您正在尝试插入一个没有所有关键元素的记录。
如果主键是分区/散列键和范围/排序键的组合,则需要在update或put参数的key属性中同时包含这两个键。
看起来,密钥service是您的分区密钥,而键access_token是您的排序密钥。
要执行更新,需要同时发送两个键:
"Key": {
"service": "perform",
"access_token": "token"
}这样,如果尝试更新access_token,您将无法实现,因为access_token属性是键的一部分。
如果要更新access_token,则需要创建另一个没有/或具有不同排序键的表,并使用access_token作为属性。
https://stackoverflow.com/questions/71250470
复制相似问题