简体   繁体   中英

'fatal error: getaddrinfo ENOTFOUND' - node.js mysql lambda

I am trying to write a node.js lambda function which will connect to a database within a MYSQL RDS instance in AWS and pull down some sample records, but I am getting the above error.

I have created the RDS to be publicly accessible and have also created the lambda method under the same VPC as the RDS. The code I am using is below:

var mysql=require('mysql'); //Require whatever connector you need.

//console.log("beware of ", beware);
var beware=1;  //This is declared outside the handler: it is possible that its last value will be reused when we enter the function again.

//This function will return a connection. Notice that it's declared outside
//the handler, thus inside the container. It may be reused but I don't think
//that matters because it is self-contained.

function getConnectionCred()
{
    var params={
        host     : '(myconnname).amazonaws.com:3306',
        user     : 'username',
        password : 'password',
        database: 'database'};

    return mysql.createConnection(params);
}

//This is your handler.
exports.handler=function(event, context)
{
    //This is declared inside the handler: it is guaranteed to never be reused!.
    var connection=getConnectionCred();

    var del = connection._protocol._delegateError;
connection._protocol._delegateError = function(err, sequence){
  if (err.fatal) {
    console.trace('fatal error: ' + err.message);
  }
  return del.call(this, err, sequence);
};

    //Do things with your connection.
    var query_string='SELECT * from table';

    connection.query(query_string, [beware], function(res, err){

        //Check for errors, disconnect and exit with failure.
        if(err){
            console.log("Query failed", err);
            connection.end(function(err){
                context.fail(0);
            });
        }
        //Disconnect and exit with success.
        else{
            connection.end(function(err){

                if(err){
                    console.log("Warning: disconnection failed" + err);
                }

                context.succeed(res);
            });
        }
    });
}

If someone could point me in the right direction of getting this error resolved that would be awesome.

Thanks!

You have specified host with port number at the end:

host: '(myconnname).amazonaws.com:3306'

Remove :3306 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM