Я создал 2 таблицы в RDS Aurora:
test-table
в Aurora db со значениями id (PK), номера задачи, состояния, contactctid (FK) 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