У меня есть эта функция, которая добавляет элемент в таблицу DynamodB. В случае успеха он должен удалить этот же элемент из другой таблицы. У меня к этому прикреплен триггер API-шлюза. Когда я проверяю почтальона. Я получаю следующую ошибку. «Предоставленный ключевой элемент не соответствует схеме».
Ключи раздела:
Первая таблица: Ключ раздела: Ключ сортировки CandidatEmail: Тип
Вторая Таблица: Ключ раздела : Сортировка даты: Тип
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set credentials
AWS.config.loadFromPath('./credentials.json');
// // set dynamodb object
var dynamo = new AWS.DynamoDB({region: 'us-east-1',});
exports.handler = (event, context, callback) => {
function getTableName(counselor) {
if(counselor == "Avery Rosser") {
return "Licensed_Level"
}
else if (counselor == "Keshara Rosser") {
return "Masters_Level"
}
}
const done = (err, res) => callback(null, {
statusCode: err ? '400' : '200',
body: err ? err.message : JSON.stringify(res),
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials" : false
}
});
const body = JSON.parse(event.body);
var params = {
TableName: "Appointment",
Item: {}
}
var deleteParams = {
TableName: getTableName(body.counselor),
Key: {
"Date": {S: body.date}
}
};
var appointment = {
"CandidateEmail": {S: body.candidateEmail},
"Date": {S: body.date},
"Name": {S: body.name},
"Duration": {S: body.duration},
"Price": {S: body.price},
"Location": {S: body.location},
"Counselor": {S: body.counselor},
"CandidateFirstName": {S: body.candidateFirstName},
"CandidateLastName": {S: body.candidateLastName},
"Type": {S: body.type},
}
params.Item = appointment;
dynamo.putItem(params, function(err, data) {
if(err) {
console.log("error in put item", err)
}
else {
dynamo.deleteItem(deleteParams, done)
}
});
};