在异步处理完成之前,Lamba函数超时

时间:2019-01-02 17:16:23

标签: node.js lambda claudiajs

我正在尝试使用Lambda和Claudia.js实现购买功能,但是我的Lambda函数在完成之前就结束了。 Cloudwatch输出:

cloudwatch output

在代码中缺少骆驼的情况下致歉! (它将在工作时进行重构!)

它在本地工作,因此必须是与lambda相关的错误。 我尝试增加设置为60的lambda函数的超时。但是没有运气!

在购买功能中:

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;

}    

每个功能都非常相似,其中包含一个promise。

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);
    }
  });
})
}

预期结果是lambda函数将贯穿所有函数。

0 个答案:

没有答案