Соединение MongoDB Atlas иногда завершается сбоем из-за Lambda

#mongodb #mongoose #aws-lambda #mongodb-atlas

#mongodb #mongoose #aws-lambda #mongodb-atlas

Вопрос:

У меня есть AWS Lambda, который подключается к Atlas через Mongoose.

Он отлично работает в моей среде разработки (с использованием изолированной среды M0), но в prod, где у меня есть M2, каждые несколько запросов завершаются ошибкой с помощью a MongooseServerSelectionError , когда я выполняю первый запрос лямбды. Похоже, это происходит только при (некоторых) повторно используемых соединениях с БД, но никогда при холодном запуске.

Для моего диапазона IP-адресов доступа к сети установлено значение 0.0.0.0, поэтому я не думаю, что белый список является проблемой.

Как бы то ни было, это мои варианты подключения:

 conn = mongoose.createConnection(process.env.MONGO, {
      bufferCommands: false,
      bufferMaxEntries: 0,
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useCreateIndex: true,
      socketTimeoutMS:4000,
      serverSelectionTimeoutMS: 1000
    });
  

Любопытно, сталкивался ли кто-нибудь с подобной проблемой раньше?

Комментарии:

1. Привет, Джаред, ты нашел ответ на эту проблему? Мы перешли с одного экземпляра на набор реплик и начали получать эту ошибку MongooseServerSelectionError

Ответ №1:

Я не уверен, что это тот ответ, который вы ищете, но рекомендуется инициализировать подключение к БД вне контекста вашей функции. это может быть вам полезно. документация mongodb atlas

Комментарии:

1. Спасибо — оно находится за пределами основной функции и повторно используется при последующих вызовах, если они близки по времени.