You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda访问SQL Server出现ETIMEOUT连接超时错误如何解决

AWS Lambda连接SQL Server超时问题排查方案

该ETIMEOUT报错属于网络连接异常,本地运行正常可排除代码、数据库账号、数据库本身配置问题,按以下优先级排查即可:

1. Lambda VPC配置校验

  • 10.2.3.44为内网IP,若SQL Server部署在AWS VPC内,必须将Lambda部署到与SQL Server相同VPC下,且选择路由互通的私有子网;未配置VPC的Lambda默认走公网,无法访问内网资源。
  • 若SQL Server部署在本地IDC,需确认Lambda所在VPC已通过专线/VPN与IDC打通,且10.0.0.0/8网段路由指向IDC侧网关。
  • 跨AWS账号部署的场景需确认VPC对等连接配置正确,双向路由规则均已添加。

2. 访问控制规则校验

  • Lambda关联安全组的出站规则需放开到10.2.3.44的1433端口(SQL Server默认TCP端口,自定义端口需替换为实际端口)的访问权限。
  • SQL Server所在服务器/EC2的安全组入站规则需放开Lambda子网CIDR段到1433端口的TCP访问权限。
  • 子网关联的NACL需同时放开1433端口TCP的出入站规则,以及1024-65535临时端口范围的入站规则。

3. 实例名解析问题修复

你代码中配置了instanceName: 'SQLSRVR',SQL Server浏览器服务依赖1434 UDP端口做实例名解析,需确认安全组同时放开1434 UDP端口的双向访问。
也可直接指定端口规避实例名解析步骤:先查询SQLSRVR实例对应的实际监听端口,代码中添加port配置并删除instanceName即可,参考配置如下:

const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('DBname', null, null, {
  dialect: 'mssql',
  host: '10.2.3.44',
  port: 1455, // 替换为你的SQLSRVR实例实际监听端口
  dialectOptions: {
    authentication: {
      type: 'ntlm',
      options: {
        domain: 'addidas',
        userName: "uname",
        password: "pwd"
      }
    }
  }
})

4. 运行时依赖校验

Lambda Node.js运行环境无内置NTLM认证所需依赖,部署包必须包含完整的node_modules文件夹,且依赖需要在Amazon Linux 2环境下安装,避免Windows/macOS下编译的二进制包在Lambda环境不兼容。

5. Lambda超时配置调整

数据库冷启动连接耗时较长,若Lambda超时时间设置低于3秒也会触发该报错,建议先将超时时间调整到10秒以上测试验证。

内容的提问来源于stack exchange,提问作者roby.elan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:45:04