更新 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
作为属性。
我在我的 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
作为属性。