Stworzyłem funkcję lambda węzła, która wykonuje proste wywołanie do bazy danych Aurora. Kiedy testuję funkcję w konsoli, zapytanie zwraca, widzę wyniki w dzienniku, ale wywołanie zwrotne nigdy nie wydaje się być wywoływane, więc moja funkcja lambda wygasa. Nie mogę zrozumieć, na czym polega problem. Mam nadzieję, że ktoś tutaj może wskazać mi problem.AWS Funkcja Lambda nigdy nie wywołuje oddzwonienia
var mysql = require("mysql");
module.exports.handler = function(event, context, cb) {
console.log('start\n');
var con = mysql.createConnection({
...
});
console.log('call data\n');
con.query('SELECT * FROM Tags', function(err, rows) {
console.log('Data received from Db:\n');
console.log(rows);
console.log('calling callback');
cb(null, 'Success');
console.log('callback called');
});
console.log('data called\n');
};
Powstały dziennika Cloudwatch jest następujący ...
2016-07-25T14:20:05.343Z daf5cd6b-5272-11e6-9036-e73ad17006df start
2016-07-25T14:20:05.398Z daf5cd6b-5272-11e6-9036-e73ad17006df call data
2016-07-25T14:20:05.405Z daf5cd6b-5272-11e6-9036-e73ad17006df data called
2016-07-25T14:20:05.440Z daf5cd6b-5272-11e6-9036-e73ad17006df Data received from Db:
2016-07-25T14:20:05.440Z daf5cd6b-5272-11e6-9036-e73ad17006df [
RowDataPacket {
id: 1,
externalId:
'a87ead34de7e',
orgId: 1,
name: 'lacinia sapien',
createdDate: 1448598369,
modifiedDate: 0
},
...,
RowDataPacket {
id: 50,
externalId: '9ebaaab372e3',
orgId: 1,
name: 'et commodo',
createdDate: 1451551837,
modifiedDate: 0
}
]
2016-07-25T14:20:05.483Z daf5cd6b-5272-11e6-9036-e73ad17006df calling callback
2016-07-25T14:20:05.483Z daf5cd6b-5272-11e6-9036-e73ad17006df callback called
END RequestId: daf5cd6b-5272-11e6-9036-e73ad17006df
REPORT RequestId: daf5cd6b-5272-11e6-9036-e73ad17006df Duration: 300000.12 ms Billed Duration: 300000 ms Memory Size: 1024 MB Max Memory Used: 52 MB
2016-07-25T14:25:05.341Z daf5cd6b-5272-11e6-9036-e73ad17006df Task timed out after 300.00 seconds
Czy możesz opublikować treść swojej funkcji zwrotnej wraz z zapełnianiem 'cb'? –
Funkcja wywołania zwrotnego jest zapewniona przez Lambda, gdy używana jest wersja węzła 4.3. Po zakończeniu logiki wywołuję funkcję zwrotną podaną przez Lambda, aby wskazać, że logika została zakończona i podano wszelkie błędy lub dane zwrotne (odpowiednio parametry funkcji zwrotnej). – mp2526
Nie czekasz na zakończenie połączenia przed wysłaniem zapytania. – kixorz