Я пытаюсь воспользоваться преимуществом повторного использования db-соединения в Lambda, храня код вне обработчика.
Например, что-то вроде:
import dbconnection from './connection'
const handler(event, context, callback){
//use dbconnection
}
Проблема в том, что я не решаю, к какой базе данных подключаться, пока не выполню поиск, чтобы увидеть, где они должны подключаться.В моем конкретном случае у меня есть 'customer = foo' в параметре запроса, тогда я могу видеть, что foo должен подключиться к database1 .
Итак, что мне нужно сделать, это примерно так:
const dbconnection = require('./connection)('database1')
То, как сейчас, мне нужно сделать это в каждом методе обработчика, который дорог.
Есть ли какой-нибудь способ, которым я могу получить параметр запроса, найти мою базу данных и установить / переключить ее глобально в контексте выполнения Lambda?
Я пробовал это:
import dbconnection from './connection'
const handler(event, context, callback){
const client = dbconnection.setDatabase('database1')
}
....
./connection.js
setDatabase(database) {
if(this.currentDatabase !== database) {
// connect to different database
this.currentDatabase = database;
}
}
Все работает локально с sls offline
, но не работает через контекст выполнения AWS Lambda.Мысли?