Привет, парень, мне нужен ответ на простой вопрос. Я использую Aws lambda с безсерверной средой и использую соединение mongoDb в aws lambda. Я использовал код соединения внутри своей функции-обработчика и использовал пул соединений.
Теперь, когда я развертываю свое приложение на AWS с использованием sls deploy и после развертывания, когда я вызываю лямбду в первый раз, соединение устанавливается только один раз, и после этого на других вызовах API лямбда-кода оно повторно использует мое соединение вместо создания нового соединениятак что все в порядке.
Теперь после этого процесса я запускаю скрипт, который не связан с моим приложением AWS, чтобы проверить мои параллельные лямбда-запросы. Я вызвал тот же самый лямбда-API, используя модуль npm запроса дляцикл в сценарии, и в этом случае все мое новое соединение создается до тех пор, пока цикл не прекратится, вместо использования моего существующего, созданного при первом вызове. Может кто-нибудь сказать мне, почему это происходит и в чем причина этого? Почему мое соединение создается снова, когда этот скрипт запускается, когда я уже создал свое соединение при первом лямбда-вызове.
И тот же API, когда я звоню из почтальона, затем возобновляет соединение после первого лямбда-вызова, но когда я запускаюэтот скрипт и изнутри скрипта я вызываю этот API (используя модуль NPM запроса), используя команду "node app.js", затем все время до завершения цикла он создает новое соединение.
Пожалуйста, помогите мне в этом.
'use strict'
const bodyParser = require('body-parser')
const express = require('express')
const serverless = require('serverless-http')
const cors = require('cors');
const mongoConnection = require('./connection/mongoDb');
const app = express()
app.use(cors())
app.use(bodyParser.json())
const handler = serverless(app);
let cachedDb = null;
module.exports.handler = async (event, context) => {
context.callbackWaitsForEmptyEventLoop = false;
if (cachedDb == null) {
let Database = await mongoConnection();
console.log("DB", Database);
cachedDb = Database
}
const baseRouter = require('./routes/index');
app.use('/api', baseRouter);
const result = await handler(event, context);
return result;
};