0
我想寫一個node.js lambda函數,它將連接到AWS中的一個MYSQL RDS實例內的數據庫並拉下一些示例記錄,但我是得到上述錯誤。'致命錯誤:getaddrinfo ENOTFOUND' - node.js mysql lambda
我已經創建了可公開訪問的RDS,並且還創建了與RDS相同的VPC下的lambda方法。我使用的代碼如下:
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);
});
}
});
}
如果有人能指出我得到這個錯誤的方向是正確的決定,將是真棒。
謝謝!
嗨,我已經嘗試了以上,並收到以下錯誤:https://pastebin.com/BZ4VyAeS –
所以這是一個非常不同的錯誤然後。檢查lambda是否有權訪問數據庫主機。 – hsz
嗨,Lambda函數是在與RDS相同的VPC和安全組下創建的 - 是否需要執行其他任何配置? –