Я пытаюсь прочитать Одиночная строка из AWS API Gateway на моей DynamoDB.
Структура БД выглядит следующим образом:
DB, пожалуйста, посмотрите
Хорошо, и я установил шаблоны отображения, как показано ниже:
Шаблоны сопоставления
Наконец-то мой лямбда-код:
console.log('function starts');
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region: 'us-east-2'});
exports.handler = function(event, context, callback){
console.log('processing event: %j', event);
let scanningParameters = {
TableName: 'users',
Key: {
"userid": event.userid
},
Limit: 1 //maximum result of 1 items
};
//In dynamoDB scan looks through your entire table and fetches all data
docClient.get(scanningParameters, function(err,data){
if(err){
callback(err, null);
}else{
callback(null,data);
}
});
}
ВРЕМЯ ИСПЫТАНИЯ
Однако, используя CURL дляпроверить мой прогресс:
curl -X GET \
mysite\
-H 'Content-Type: application/json' \
-d '{
“userid”: “some user id”
}'
Но получим:
{"errorMessage": "Одно или несколько значений параметров недопустимы: AttributeValue может не содержать пустую строку",«errorType»: «ValidationException», «stackTrace»: [«Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:48:27)","Request.callListeners (/ var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20)","Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10) ","Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)","Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22: 10) "," AcceptorStateMachine.runTo (/ var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)","/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10","Request.(/Var/runtime/node_modules/aws-sdk/lib/request.js:38:9)","Request.(/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)","Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:115:18)"]}