Доступ к лямбда-функции по триггеру RDS создает потерянное соединение - PullRequest
0 голосов
/ 28 января 2020

Я создал 2 таблицы в RDS Aurora:

  1. test-table в Aurora db со значениями id (PK), номера задачи, состояния, contactctid (FK)
  2. contact-table в той же базе данных со значениями contactid (PK), электронной почты, телефона

Я создал триггер в «тестовой таблице», который всякий раз, когда изменяется «статус», триггер должен вызывать AWS -Lambda ARN ,

Функция Lambda и Aurora имеют все разрешения и безопасность сняты, все еще при тестировании с Lambda. Я получаю ошибку изображения ниже и при обновлении поля «status» вручную в aurora (через запрос Workbench Sql) показывает:

Операция не выполнена: при применении сценария SQL к базе данных произошла ошибка.

ОШИБКА 2013: 2013: Потеряно соединение с MySQL сервером во время запроса

Я также приложил свой код 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

1 Ответ

0 голосов
/ 28 января 2020

Вы должны закрыть соединение, если вы хотите мгновенный ответ, иначе потребуется время по умолчанию, чтобы закрыть соединение, пожалуйста, дайте мне знать, если имеет смысл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...