私はAuroraデータベースへの簡単な呼び出しを行うノードラムダ関数を作成しました。私はコンソールで関数をテストすると、クエリが返されます、私はログに結果を見ることができますが、コールバックは決して呼び出されるように見えないので、私のラムダ関数がタイムアウトします。私は問題が何であるか把握できません。ここの誰かが私に問題を指摘してくれることを願っています。次のようにAWSラムダ関数がコールバックを呼び出すことはありません
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');
};
結果CloudWatchのログは、私は問題を発見した...この質問へ
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
コールバック関数の本体を、 'cb'がどのように設定されているのと一緒に投稿できますか? –
コールバック関数はノードバージョン4.3を使用するときにLambdaによって提供されます。私のロジックが終了すると、Lambdaがコールバック関数を呼び出して、ロジックが終了し、エラーまたは戻りデータが提供されていることを示します(それぞれコールバック関数のパラメータ)。 – mp2526
クエリを送信する前に接続が終了するのを待っているわけではありません。 – kixorz