0
APIゲートウェイで応答を送信するためにラムダでコールバックを行うのに問題があります。私は、MySQLデータベースと対話する簡単なアプリケーションを構築しようとしています。 Releventコードスニペットは下にあります。nodejs、aws lambda、aws api gatewayでコールバックを呼び出せません
validateTokenでエラーが返されてconsole.logメッセージが表示されても、done/callbackは予想される応答をapiゲートウェイに送信せず、その後ろのコードを処理し続けます。
exports.handler = (event, context, callback) => {
const done = (err, res) => callback(null, {
statusCode: err ? '400' : '200',
body: err ? err.message : JSON.stringify(res),
headers: {
'Content-Type': 'application/json',
},
});
if (event.path.match(/myApi\/workers\/*/)) {
// Validate Token
token.validateToken(pool, event.headers, function(err, result) {
if (result.status == 'error') {
console.log('Made it to here')
done({"message": "Invalid api-token"}, null);
} else {
// Proceed with fetching workers
}
});
}
}
ご協力いただければ幸いです!
この機能はLambdaテストコンソールで機能しますか?関数はどのくらい処理するのですか? –
これはエラーをスローしないように動作しますが、期待通りに「無効なapi-token」も返しません。私は、コンソールでAPI Gatewayテスターを使ってテストを行ってきました。このためラムダのテストも行ってください。 – davis190
申し訳ありません "処理にはどれくらい時間がかかりますか"という質問にお答えしていません。それは今までに戻ってこないので、現在タイムアウトしています。 – davis190