Я пытаюсь реализовать функцию покупки, используя Lambda и Claudia.js, но моя функция Lambda заканчивается до ее завершения.Выходные данные Cloudwatch:
Извините за отсутствие верблюжьего кода в коде!(Рефакторинг, когда он работает!)
Он работает локально, поэтому должна быть ошибка, связанная с лямбда-выражением.Я попытался увеличить время ожидания лямбда-функции, которая установлена на 60. Но не повезло!
В функции покупки:
purchaseCall(ordernumber,billingName,addressLineOne,addressCity,billing AddressState,billingAddressZip,billingAddressCountry,total,email)
Функция aysnc, которая вызывает:
async function purchaseCall(ordernumber,billingName,addressLineOne,addressCity,billingAddressState,billingAddressZip,billingAddressCountry,total,email) {
console.log('Calling ASYNC');
var returnedRows = await CreateRows(ordernumber);
await returnedRows;
var rowdata = await RowData(returnedRows);
await rowdata;
var filename = await CreatePDF(ordernumber, billingName,
addressLineOne, addressCity, billingAddressState,
billingAddressZip, billingAddressCountry, rowdata, total);
await filename;
var sendMailGunEmail = sendMailgunEmail(ordernumber, billingName,
addressLineOne, addressCity, billingAddressState, billingAddressZip, billingAddressCountry, rowdata, total, email, filename);
await sendMailGunEmail;
var uploads3 = uploadtoS3(filename, ordernumber)
await uploads3;
return ordernumber;
}
Каждая из функций очень похожа, в которой они содержат обещание.
function CreateRows(ordernumber) {
var sqltheUserID = 'SELECT statement';
return new Promise(function(resolve, reject) {
pool.query(sqltheUserID, [ordernumber], function (err, result, fields) {
if (err) {
reject(err);
} else {
console.log(result);
resolve(result);
}
});
})
}
Ожидаемый результат состоит в том, что лямбда-функция будет проходить через все функции.