Запись Dynamodb не обновляется в цикле for - PullRequest
0 голосов
/ 20 мая 2019

В настоящее время я использую 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 в цикл и получаю распечатанный журнал.

...