ラムダ関数では、コールバックを送信するとすぐにmongo接続を閉じようとしました。しかし、問題があります。
db.close()
を削除すると、問題なく動作します。ハンドラーの上部で接続を開くため、ラムダはすべての関数の接続を再利用すると思います。
// Connect to database
mongoose.connect(process.env.DATABASE_URL);
const handleCreateUser = async (event, context, callback) => {
// eslint-disable-next-line no-param-reassign
context.callbackWaitsForEmptyEventLoop = false;
const data = JSON.parse(event.body);
const { user, userProfile } = data;
await createUser({ callback, user, userProfile });
};
これを修正する方法はありますか?この時点で本当に接続を閉じる必要がありますか?
ハンドラー内で_mongoose.connect
_コードを移動するか、db.close()
の呼び出しを停止します。現在、Lambda関数の複数の呼び出しによって再利用されている単一のデータベース接続がありますが、最初の呼び出しが完了した後で接続を閉じています。