Вот моя лямбда-функция:
const AWS = require("aws-sdk");
const dynamodb = new AWS.DynamoDB({region: "ap-southeast-2"});
exports.handler = function(event, context) {
var tableName = "MyTable1";
dynamodb.updateItem({
"TableName": tableName,
"Key": {
"sub": {
"S": event.sub
}
},
"UpdateExpression": "ADD EventID :val1",
"ExpressionAttributeValues": {
":val1": {
"SS": event.EventID
}
},
"ReturnValues": "ALL_NEW",
}, function(err, data) {
if (err) {
context.fail('ERROR: Dynamo failed: ' + err);
} else {
console.log('Dynamo Success: ' + JSON.stringify(data, null, ' '));
context.succeed('SUCCESS');
}
});
}
Код работает нормально, когда я добавляю или вставляю новые элементы.
Что я хочу сделать, это сначала удалить элементы, прежде чем я смогу сделать обновление?
Я пытался изменить выражение UpdateExpression, заменив ADD на SET
"UpdateExpression": "SET EventID :val1",
Но тогда это дает синтаксическую ошибку.
Кто-нибудь знает, как лучше всего удалить элементы перед обновлением?
Так, например, если у меня есть эти данные в DymnamoDB
ID EventID
789534 { "BA345", "GA932", "TA900" }
После нового обновления со следующими данными
ID EventID
789534 { "CA345"}
становится
ID EventID
789534 { "CA345"}
По сути, каждое обновление должно действовать как новое / начальное добавление.
Если что-то не понятно, пожалуйста, не стесняйтесь спрашивать. Спасибо заранее.