Sto provando a connettere la funzione AWS Lambda al database mysql di RDS.
Volevo solo aggiornare il database dalla mia funzione lambda. È possibile accedere a RDS specificando il ruolo IAM e la politica di accesso ?.
Posso connettermi a mysql databse usando mysql client.but quando provo su lambda non posso farlo. ecco il mio codicepuò AWS Lambda connettersi al database mySQL RDS e aggiornare il database?
console.log('Loading function');
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
var mysql = require('mysql');
exports.handler = function(event, context) {
//console.log('Received event:', JSON.stringify(event, null, 2));
var operation = event.operation;
delete event.operation;
switch (operation) {
case 'create':
var conn = mysql.createConnection({
host: 'lamdatest.********.rds.amazonaws.com', // RDS endpoint
user: 'user', // MySQL username
password: 'password', // MySQL password
database: 'rdslamda'
});
conn.connect();
console.log("connecting...");
conn.query('INSERT INTO login (name,password) VALUES("use6","password6")', function(err, info) {
console.log("insert: " + info.msg + " /err: " + err);
});
console.log("insert values in to database");
break;
case 'read':
dynamo.getItem(event, context.done());
break;
default:
context.fail(new Error('Unrecognized operation "' + operation + '"'));
}
context.succeed();
};
Non è possibile usare 'IAM Role' per accedere al tuo' RDS'. – kixorz
quindi qual è la procedura per connettersi a mysql RDS? –
È necessario rendere pubblico il proprio RDS (non in VPC) e quindi utilizzare uno dei nomi host pubblici per connettersi ad esso. – kixorz