AWS Lambda:如何按顺序调用Mysql Query

时间:2018-05-22 11:45:29

标签: node.js aws-lambda node-mysql

我想按顺序调用多个sql查询。 我尝试使用下面的代码,但收到超时错误:

    exports.handler = function (event, context, callback) {

   getNumber()
    .then(result1 => {
        // Use result1
        return getNumber1(); // (A)
    })
    .then(result2 => { // (B)
        console.log(result2);
        callback(null, "OK");
    })
    .catch(error => {
        console.log(error);
        callback(null, "OK");
    });
};

function getNumber() {

      return new Promise(function(resolve, reject) {

          connection.query("SELECT 1+1 as test ", (error, data) => {

            if (error) {
                reject(error);
            } else {
                resolve(data);
            }
            });
      }); 
    }

    function getNumber1() {

      return new Promise(function(resolve, reject) {

          connection.query("SELECT 1+2 as test ", (error, data) => {

            if (error) {
                reject(error);
            } else {
                resolve(data);
            }
            });
      }); 
    }

这里我得到'任务在3.00秒后超时'错误。 所以任何人都可以帮我同步调用connection.query。

1 个答案:

答案 0 :(得分:0)

这可以通过链接AWS Lambda函数来解决。 所以在这种情况下,每个函数都必须分成不同的lambda函数。然后在链中调用它们。

但请记住,Lambda函数有时间限制并将退出。因此,如果Lambda运行时间更长,您可能需要不同的体系结构/ AWS组件来实现此目的。

Invoke multiple aws lambda functions