【发布时间】:2019-02-07 06:25:43
【问题描述】:
我试图通过将代码保留在处理程序之外来利用 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 执行上下文工作。想法?
【问题讨论】:
标签: node.js amazon-web-services aws-lambda singleton