Я пытаюсь получить данные из API-шлюза в Lambda и сохранить их в DynamoDB. Ниппеты моего кода:
Лямбда
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region: 'eu-central-1', apiVersion: '2012-08-10'});
exports.handler = (event, context, callback) => {
const currentTime = new Date().toISOString();
const _id = currentTime + "-" + ('-'+Math.random()).substr(3);
const params = {
Item: {
"_id": {
S: _id
},
"dailyRentalRate": {
N: event.dailyRentalRate
},
"title": {
S: event.title
},
"numberInStock": {
N: event.numberInStock
},
"updated": {
S: currentTime
}
},
TableName: "vidly_movies"
};
dynamodb.putItem(params, function(err, data) {
if (err) {
console.log(err);
callback(err);
} else {
console.log(data);
callback(null, data);
}
});
};
Затем я посылаю следующие JSON от шлюза в Лямбду:
{
"_id": "sd5sfdg46a",
"dailyRentalRate": 5,
"title": "something",
"numberInStock": 5,
"updated": "2020-03-19"
}
Пока хорошо. Все отлично работает Теперь я хочу отправить JSON с ребенком, как это:
{
"_id": "sd5sfdg46a",
"dailyRentalRate": 5,
"title": "something",
"numberInStock": 5,
"updated": "2020-03-19",
"genre": {
"_id": "asdaga",
"name": "Action"
}
}
Я пытаюсь получить данные с этим кодом, который не работает:
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region: 'eu-central-1', apiVersion: '2012-08-10'});
exports.handler = (event, context, callback) => {
const currentTime = new Date().toISOString();
const _id = currentTime + "-" + ('-'+Math.random()).substr(3);
const params = {
Item: {
"_id": {
S: _id
},
"dailyRentalRate": {
N: event.dailyRentalRate
},
"title": {
S: event.title
},
"numberInStock": {
N: event.numberInStock
},
"updated": {
S: currentTime
},
"genre": {
M: {
"_id": {
S: event.genre._id
},
"name": {
S: event.genre.name
}
}
}
},
TableName: "vidly_movies"
};
dynamodb.putItem(params, function(err, data) {
if (err) {
console.log(err);
callback(err);
} else {
console.log(data);
callback(null, data);
}
});
};
Ошибка где-то здесь: event.genre._id
и event.genre.name
. Но я не знаю, что использовать для доступа к Ребенку.