如何保持 sequelize 与 AWS Lambda 函数的连接(或加速初始连接)?
How to persist sequelize connection with AWS Lambda functions (or speed up initial connection)?
我目前有一个 AWS Lambda 函数,它利用 RDS 中的 MySQL 数据库对 connect/query 进行续集。
一切都按预期工作,除了一段时间不活动后的第一次连接总是需要至少 5 秒才能启动。随后的 lambda 调用很快,因此我怀疑连接已持久化并合并。
这有点烦人,所以我想知道我是否可以优化它以更快地连接,或者配置 lambda 以便连接是永久的。
"use strict"
var Sequelize = require('sequelize')
var database = 'participantData',
host = 'hostname',
username = 'username',
password = 'blah'
var sequelize = new Sequelize(database, username, password, {
host: host,
dialect: 'mysql',
logging: console.log('Query Logged')
})
var Resource = sequelize.define('resource', {
program_name: { type: Sequelize.STRING },
geocoded_address: { type: Sequelize.STRING }
})
exports.handler = function(event, context){
Resource.findAll({
//some filter
})
.then((res) => {
context.succeed(JSON.stringify(res))
})
.catch(error => console.log(error))
}
不,您不能在 Lambda 中建立永久连接,因为它的基本工作方式。但您可以优化 Lambda 启动时间、重复使用等。请参阅 https://www.reddit.com/r/aws/comments/49l91l/lambda_functions_in_vpc_cold_boot_times_of_10/ and https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/
我猜你只需要每隔一段时间发送一个请求,这样它就会继续重用容器。
我目前有一个 AWS Lambda 函数,它利用 RDS 中的 MySQL 数据库对 connect/query 进行续集。
一切都按预期工作,除了一段时间不活动后的第一次连接总是需要至少 5 秒才能启动。随后的 lambda 调用很快,因此我怀疑连接已持久化并合并。
这有点烦人,所以我想知道我是否可以优化它以更快地连接,或者配置 lambda 以便连接是永久的。
"use strict"
var Sequelize = require('sequelize')
var database = 'participantData',
host = 'hostname',
username = 'username',
password = 'blah'
var sequelize = new Sequelize(database, username, password, {
host: host,
dialect: 'mysql',
logging: console.log('Query Logged')
})
var Resource = sequelize.define('resource', {
program_name: { type: Sequelize.STRING },
geocoded_address: { type: Sequelize.STRING }
})
exports.handler = function(event, context){
Resource.findAll({
//some filter
})
.then((res) => {
context.succeed(JSON.stringify(res))
})
.catch(error => console.log(error))
}
不,您不能在 Lambda 中建立永久连接,因为它的基本工作方式。但您可以优化 Lambda 启动时间、重复使用等。请参阅 https://www.reddit.com/r/aws/comments/49l91l/lambda_functions_in_vpc_cold_boot_times_of_10/ and https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/
我猜你只需要每隔一段时间发送一个请求,这样它就会继续重用容器。