Результат лямбда-функции для извлечения данных из RDS, не возвращая результата - PullRequest
0 голосов
/ 26 сентября 2019

Я протестировал функцию nodejs из локальной системы, чтобы получить результат из инстанса RDS, но когда я изменяю тот же код для лямбда-функции AWS и развертываю, он не возвращает результата.

Я настраиваю лямбду в том же VPC сЭкземпляр RDS.Я даже настраиваю ту же группу безопасности и подсети.Я настраиваю интернет-проход в публичной подсети.Я проверил входящие и исходящие правила для порта для работы.

var mssql = require('mssql');
var log = require('log');
var mssqlConfig = {
user: 'absroot',
password: '',
server: 'flexedgedbadmin.ctsvkjsupcl4.ap-southeast-2.rds.amazonaws.com',
instanceName: 'flexedgedbadmin.ctsvkjsupcl4.ap-southeast-2.rds.amazonaws.com',
database: 'FLEXEDGE_PI_dev',
port: 1433,
options: {
    encrypt: true
}
};


exports.handler = function(event, context, callback) {
context.callbackWaitsForEmptyEventLoop = false;
var a = "abc@gmail.com";

var connection = mssql.connect(mssqlConfig, function(err) {
    if (err) {
        context.fail();
        connection.close();
        console.log("error during connection %s", err);
        callback(err);
    } else {
        console.log("Connection successful");
        context.succeed('Succeed');
    }
});

var jsonArray = {};
new mssql.Request().query('select top 2 * from abc where username=' + '\'' + a + '\'').then(function(recordsets) {

        if (recordsets.recordset.length > 0) {
            for (var i = 0; i < recordsets.recordset.length; i++) {
                //  console.log(" Query result  i "  + (i + 1));
                log('json payload is ' + JSON.stringify(recordsets.recordset[i]));
                var payLoadData = JSON.stringify(recordsets.recordset[i]);
                console.log('json payload of activityid ' + JSON.parse(payLoadData).ActivityID);
                jsonArray.append(payLoadData);
            }
        } else

            log("No records found to process. Wait for next invocation.......");

        //callback(jsonArray);
    }

).catch(function(err) {
    log('query execution failed ' + err);
});

console.log('details in jsonArray are ' + jsonArray);
console.log('details in jsonArray are ' + JSON.stringify(jsonArray));
const res = { statusCode: 200, body: jsonArray };
connection.close();
callback(null, res);
};
...