RDS 触发器访问 Lambda 函数会导致连接丢失

Lambda function access by RDS trigger creates connection lost

我在 RDS aurora 中创建了 2 个表:

  1. test-table 在 aurora 数据库中,值为 id(PK)、tasknumber、status、contactid(FK)
  2. contact-table 在同一个数据库中,具有值 contactid(PK)、电子邮件、phone

我在 'test-table' 中创建了一个触发器,只要 'status' 发生变化,触发器就会调用 AWS-Lambda ARN。

Lambda 函数和 Aurora 拥有所有权限,并且已清除安全性,仍在从 Lambda 进行测试时出现图像下方错误,并在 aurora 中手动更新 'status' 字段(通过 Workbench Sql 查询)它显示:

Operation failed: There was an error while applying the SQL script to the database.

ERROR 2013: 2013: Lost connection to MySQL server during query

我也附上了我的 Lambda Node.Js 代码。

var AWS = require('aws-sdk');
AWS.config.update({ region: 'us-east-1' });
const mysql = require('mysql');

var con = mysql.createConnection({

  host: 'correct value',
  user: 'root',
  password: 'correct value',
  port: correct value,
  database: 'correct value'

});
exports.handler = (event, context, callback) => {
  context.callbackWaitsForEmptyEventLoop = false;
  var fk = event.contact_id;
  console.log('FOREIGN KEY=', fk)

  con.connect(function(err) {
    if (err) throw err;
    var sql = `SELECT * FROM db.contacts where contact_id=${fk}`

    con.query(sql, function(err, result) {
     if (err) throw err;
     var email = result[0].email;
     console.log(email);

     var sns = new AWS.SNS();
    var params = {
     Message: email,
      Subject: "Test SNS From Lambda",
     TopicArn: "arn:correct value"
   };

      sns.publish(params, function(err, data) {
        if (err) console.log(err, err.stack); 
        else {
          console.log(data);
          callback(null, 'Success');
        }
      });

    });
  });
};

也遵循 NodeJs 包:https://github.com/isaacs

如果你想要即时响应,你必须关闭连接,否则将需要默认时间关闭连接,如果有意义请告诉我