AWS Lambda: как вызвать Mysql Query по очереди - PullRequest
0 голосов
/ 22 мая 2018

Я хочу вызывать более одного 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 голосов
/ 22 мая 2018

Это можно решить с помощью цепочки лямбда-функций AWS.Таким образом, в этом случае каждая функция должна быть разделена на разные лямбда-функции.Затем вызовите их в цепочке.

Тем не менее, имейте в виду, что лямбда-функции имеют ограничение по времени и будут выходить.Таким образом, вам может потребоваться другой компонент архитектуры / AWS для достижения этой цели, если время работы Lambda больше.

Вызовите несколько лямбда-функций aws

...