Я выполняю запрос от AWS Lambda к таблице DynamoDB. При использовании AWS.DynamoDB.DocumentClient он не может правильно преобразовать тип данных «N». Я получаю сообщение об ошибке «ValidationException: одно или несколько значений параметров недопустимы: тип параметра условия не соответствует типу схемы». Когда я использую AWS.DynamoDB и явно указываю тип «N», запрос работает. Оба значения «события» являются строками.
Я бы предпочел использовать AWS.DynamoDB.DocumentClient. Какие-либо предложения?
-> НЕ РАБОТАЕТ
let dynamodb = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
let params2 = {
TableName: "TABLENAME",
KeyConditionExpression: "#o = :owner and #s = :sortkey",
ExpressionAttributeNames: {
"#o" : "owner",
"#s" : "sortkey
},
ExpressionAttributeValues: {
":owner" : event.userId,
":sortkey" : event.objPartitionKey
}
};
const data = await dynamodb.query(params2).promise();
-> РАБОТАЕТ
let ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
// configure the dynamoDb query parameters
let params = {
TableName: "TABLENAME",
KeyConditionExpression: "#o = :owner and #s = :sortkey",
ExpressionAttributeNames: {
"#o" : "owner",
"#s" : "sortkey"
},
ExpressionAttributeValues: {
":owner" : {S: event.userId},
":sortkey" : {N: event.objPartitionKey}
}
};
const data = await ddb.query(params).promise();