Я экспериментирую с DynamoDB, чтобы вставить некоторые данные в таблицу test-table
. С почтальоном и лямбдой я пытаюсь вставить некоторые значения.
В настоящее время в моей таблице есть Key
с именем node
, и если я пытаюсь вставить новую запись, в теле работает следующее:
{
"TableName": "test-table",
"Key": {"note":"test node"}
}
Однако я хочу добавить некоторые новые данные в мою запись, например:
{
"TableName": "test-table",
"Key": {"note":"test node"},
"Title": "This is a test"
}
Но при этом не сохраняется второе свойство Title
, только ключ спасаться Что мне здесь не хватает?
Вот мой лямбда-код, который получает данные с помощью API Gateway:
const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event, context) => {
//console.log('Received event:', JSON.stringify(event, null, 2));
let body;
let statusCode = '200';
const headers = {
'Content-Type': 'application/json',
};
try {
switch (event.httpMethod) {
case 'DELETE':
body = await dynamo.delete(JSON.parse(event.body)).promise();
break;
case 'GET':
body = await dynamo.scan({ TableName: event.queryStringParameters.TableName }).promise();
break;
case 'POST':
body = await dynamo.put(JSON.parse(event.body)).promise();
break;
case 'PUT':
body = await dynamo.update(JSON.parse(event.body)).promise();
break;
default:
throw new Error(`Unsupported method "${event.httpMethod}"`);
}
} catch (err) {
statusCode = '400';
body = err.message;
} finally {
body = JSON.stringify(body);
}
return {
statusCode,
body,
headers,
};
};