当前位置: 首页 > 知识库问答 >
问题:

如何保持与AWS Lambda功能的后续连接(或加速初始连接)?

毕宇
2023-03-14

我目前有一个AWS Lambda函数,利用序列化从RDS中的MySQL数据库连接/查询。

一切都按预期工作,除了一段时间不活动后的第一个连接总是需要至少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))
}

共有1个答案

陆翰学
2023-03-14

不,由于Lambda的基本工作方式,您无法使其中的连接永久化。但是您可以优化Lambda的启动时间、重用等。参见https://www.reddit.com/r/aws/comments/49l91l/lambda_functions_in_vpc_cold_boot_times_of_10/和https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/

我的猜测是,您只需要每隔一段时间发送一个请求,以便它继续重用容器。

 类似资料:
  • 我正在尝试修复与MySQL数据库的连接问题。几个小时后,我的服务器意外地关闭了与MySQL数据库的连接。 这是我的错误代码: 通用域名格式。mysql。jdbc。例外。jdbc4。CommunicationsException:从服务器成功接收到的最后一个数据包是37521865毫秒前。最后一个成功发送到服务器的数据包是37521865毫秒前。长于服务器配置的“等待超时”值。在应用程序中使用之前,

  • 问题内容: 我使用mysqli将我连接到数据库的功能出现问题。我的目标是在需要连接的地方键入内容。 这是代码: 这是我在致电后尝试使用时遇到的错误: 注意:未定义的变量:第19行的C:\ xampp \ htdocs \ xampp \ loginsystem \ index.php中的mysqli 问题答案: 正如一些用户所建议的(这是最好的方法),返回mysqli实例 例:

  • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

  • 我的设置是cloudflare- 这是nginx为websocket连接记录的内容:162.158。75.125--[29/Oct/2016:00:01:47 0000]“GET/HTTP/1.1”101 1047-“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/53.0.2785.143 Safari/53

  • Nginx 1.1.4可用于与HTTP1的上游连接。1 keepalive指令,请参阅官方文档(它与keepalive客户端的连接不同)。所以独角兽的配置可以如下所示: HTTP连接需要这些标头:proxy_http_version和proxy_set_header。 所以问题是配置有效还是套接字连接本身是永久的?

  • 问题内容: 我在服务器中使用,因此客户端可以从服务器获取通知。 但是,似乎客户端连接到服务器后,如果客户端和服务器之间没有任何数据传输,服务器将在处返回EOF错误,这看起来像是一种超时机制。 我在Google中搜索过,看来websocket协议具有 乒乓 心跳来维持连接,我想问一下是否支持此ping协议? 如果要保持客户端与服务器之间的连接有效,该怎么办? 问题答案: 直到2013年,go.net