Существует таблица DynamoDB, которая называется Portal.Из лямбда-функции, написанной в узле, я хочу обновить поля status
и ts
элемента (путем вызова функции signalJobStart ) и дождаться завершения функции асинхронного обновления с обещанием, прежде чем продолжить,По какой-то причине обновление не происходит, однако ошибок во время операции не возникает.В журналах нет ошибок, и я вижу сообщение «ЗАВЕРШЕНО» в журналах.
Почему в элементе таблицы нет изменений?Почему я не вижу ни сообщения об ошибке, ни сообщения об успехе в журналах?
(Я также пытался без обещания с тем же результатом. Элемент таблицы не обновляется - даже асинхронно.)
Вот код из лямбды:
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region: 'eu-west-1'});
module.exports = {
signalJobStart: function(accountId, jobId) {
console.log("Signaling job start for account %s and job %s", accountId, jobId);
let table = "Portal";
let params = {
TableName: table,
Key:{
"accountid": accountId,
"entity": jobId
},
UpdateExpression: "SET status = :s, ts = :t",
ExpressionAttributeValues:{
":s": "running",
":t": Date.now()
},
ReturnValues:"UPDATED_NEW"
};
let updatePromise = docClient.update(params, function(err, data) {
if (err) {
console.error("Unable to update item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("UpdateItem succeeded:", JSON.stringify(data, null, 2));
}
}).promise();
updatePromise.then(function(data) {
console.log('Success');
}).catch(function(err) {
console.log(err);
});
console.log("FINISHED");
}};