В настоящее время я использую Dynamoose для управления записями в DynamodB.
от моего клиента я получаю коллекцию инсайдеров
insiders: [
{ uid: '123', name: 'Insider A' },
{ uid: '456', name: 'Insider B' },
{ uid: '789', name: 'Insider B' }
]
и моя лямбда-функция получает переменную collection через insiders
, и я зацикливаюсь в каждой записи. Внутри цикла я обновляю положение записей
module.exports.reorder = async (event) => {
const klass = await getKlass.byEnv(process.env.STAGE, 'insider');
const req = event.body
var insiders = req.insiders;
try {
for (let [index, insider] of insiders.entries()) {
console.log("Insider: ", insider);
console.log("Index: ", index);
await klass.update({ uid: insider.uid }, {
$PUT: {
position: index += 1
}
}, { condition: 'attribute_exists(uid)' })
}
return successResponse.message();
} catch (err) {
console.log("===============");
console.error(err);
console.log("===============");
if (err && err.code == 'ConditionalCheckFailedException') {
return noRecord404.notFound();
}
}
}
это работает нормально, когда я тестирую его на своем локальном компьютере, но при развертывании его в AWS Lambda. Оно не обновляется. Я также помещаю console.log
в цикл и получаю распечатанный журнал.