Я работаю над проектом NodeJS и, похоже, использую довольно распространенную настройку AWS.Мой ApiGateway получает вызов, запускает лямбду A, затем эта лямбда A запускает другие лямбды, скажем, B или C, в зависимости от параметров, передаваемых из ApiGateway.
Lambda A должен получить доступ к MongoDB и избежать проблем с запуском MongoDB самостоятельно, я решилиспользовать млаб.ATM Lambda A обращается к MongoDB с помощью драйвера NodeJS.Теперь, чтобы не устанавливать соединение с каждым выполнением Lambda A, я использую пул соединений, опять же, внутри кода Lambda A, вне обработчика. Я сохраняю пул соединений, который позволяет мне повторно использовать соединения, когда Lambda A вызывается несколько раз.Кажется, это работает нормально.Однако я не уверен, что делать с соединениями, когда Lambda A вызывает Lambda B, а Lambda B должен получить доступ к базе данных mLab MongoDB.
- Можно ли каким-то образом передать пул соединений, или Lambda B должен был бы сохранить собственный пул соединений?
- Я думал об использовании API данных mLab , чтовыставляет большинство операций драйвера MongoDB, и поэтому я мог бы использовать HTTP-вызовы, например, GET и POST, для запуска команд с базой данных.Кажется, что похоже на RESTHeart , кажется.
Я склоняюсь к варианту 2, но в API данных mLab ясно говорится, что следует избегать использования REST api, если толькоНевозможно подключиться с помощью драйвера MongoDB напрямую:
Первый метод - тот, который мы настоятельно рекомендуем, когда это возможно для повышения производительности и функциональности, - это подключение с использованием одного из доступных драйверов MongoDB.Вам не нужно использовать наш API, если вы используете драйвер.Второй метод, описанный в этой статье, заключается в подключении через RESTful Data API mLab.Используйте этот метод, только если вы не можете подключиться с помощью драйвера MongoDB.
Учитывая все это, как лучше всего к нему подойти?1 или 2 или есть какой-то другой вариант, который я должен рассмотреть?