У меня есть код на основе Sequelize, который отлично работает в проекте Node.js. Я переместил этот код в обработчик AWS Lambda и тестировал его с помощью модуля node-lambda. Теперь код Sequelize кажется пропущенным. Я не уверен, что обещание не обрабатывается до того, как закончится Лямбда, или если мне не хватает чего-то другого. Следующий код пропускает «во время» console.log, как показано на следующем рисунке.Код Sequelize не выполняется внутри AWS Lambda
var models = require('./models');
exports.handler = function(event, context, callback) {
console.log("Before");
var body = JSON.parse(event.body);
// Find the device ID from the devices table
models.Device.findOne({where: {device_uuid: body.device_uuid}, attributes: ['id']}).then(function(device) {
console.log("During");
// Make sure that we got a device back
if (device === null) {
console.log("Device not found - could not insert data");
return;
}
else {
console.log("Device found, inserting data - " + body.device_uuid);
//Insert the data for this device
models.Data.create({
device_id: device.id,
data: body.data
});
}
});
console.log("After");
callback(null, "{\"status\": \"success\"}");
}
Урожайность ...
Before
After
Success:
"{\"status\": \"success\"}"
Любые идеи о том, где я буду неправильно? Я использую Node v5.9.0.
Я обнаружил, что если я удалю ссылку обратного вызова, что код Sequelize работает нормально. – user2174937