提供的关键元素与 DynamoDB 中的架构错误不匹配
provided key element does not match the schema error in DynamoDB
当我尝试从 DynamoDb 获取数据时,出现 ValidationException:提供的关键元素与模式不匹配 错误。
getUser 和 validateUsername 的情况都不起作用,我尝试了很多方法来解决它,但似乎没有任何效果。我的 lambda 正在节点 14.x.
上工作
这是我的 lambda 代码:
// GET USER BY ID
async function getUser(userId) {
const params = {
TableName: DYNAMO_DB_TABLE_NAME,
Key: {
'id': {S: userId}
}
};
return await DYNAMO_DB.get(params).promise()
.then((response) => {
console.log(response);
return generateUserResponse(response?.Item, true);
}, (error) => {
console.error(error);
return generateUserResponse(null, false);
})
}
// GET USER BY USERNAME
async function validateUsername(username) {
console.log(username)
const params = {
TableName: DYNAMO_DB_TABLE_NAME,
Key: {
'id': username.toLowerCase()
}
};
console.log(params);
return await DYNAMO_DB.get(params).promise()
.then((response) => {
if (response && response?.Item) {
return generateUserResponse(true, true);
} else {
return generateUserResponse(false, true);
}
}, (error) => {
console.error(error);
return generateUserResponse(null, false);
})
}
当我尝试从 DynamoDb 获取数据时,出现 ValidationException:提供的关键元素与模式不匹配 错误。
getUser 和 validateUsername 的情况都不起作用,我尝试了很多方法来解决它,但似乎没有任何效果。我的 lambda 正在节点 14.x.
上工作这是我的 lambda 代码:
// GET USER BY ID
async function getUser(userId) {
const params = {
TableName: DYNAMO_DB_TABLE_NAME,
Key: {
'id': {S: userId}
}
};
return await DYNAMO_DB.get(params).promise()
.then((response) => {
console.log(response);
return generateUserResponse(response?.Item, true);
}, (error) => {
console.error(error);
return generateUserResponse(null, false);
})
}
// GET USER BY USERNAME
async function validateUsername(username) {
console.log(username)
const params = {
TableName: DYNAMO_DB_TABLE_NAME,
Key: {
'id': username.toLowerCase()
}
};
console.log(params);
return await DYNAMO_DB.get(params).promise()
.then((response) => {
if (response && response?.Item) {
return generateUserResponse(true, true);
} else {
return generateUserResponse(false, true);
}
}, (error) => {
console.error(error);
return generateUserResponse(null, false);
})
}