基于Github上的aws-serverless-express存储库。我已连接到AWS RDS,以便对数据进行增删改查。我正在将Sequelize用于ORM。 我已经在本地进行了测试,动作效果很好。但是,当将其部署在AWS Lambda上时,错误发生在 Sequelize初始化(没有正常工作)
顺序化首字母
const database = new Sequelize('databasename', 'root', 'password', {
host: 'XXXXXX.XXXXXX.us-east-1.rds.amazonaws.com',
port: 3306,
logging: console.log,
maxConcurrentQueries: 100,
dialect: 'mysql',
dialectOptions: {
ssl: 'Amazon RDS',
},
pool: { maxConnections: 5, maxIdleTime: 30 },
language: 'en',
});
错误日志来自CloudWatch:
module initialization error: Error
at Object.fs.openSync (fs.js:646:18)
at Object.fs.readFileSync (fs.js:551:33)
at Object.Module._extensions..js (module.js:662:20)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/task/mysql2/lib/packets/ssl_request.js:3:23)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at /var/task/mysql2/lib/packets/index.js:4:16
at Array.forEach (<anonymous>)
at Object.<anonymous> (/var/task/mysql2/lib/packets/index.js:3:4)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
我担心错误抛出会导致SSL连接问题,但我不知道如何解决。
以下是我在RDS MySql实例上的配置:
网络与安全
安全组:默认
入站:
类型:所有交通
协议:全部
端口范围:全部
来源:sg-3c941877(默认)
出站:
类型:所有交通
协议:全部
端口范围:全部
目的地:0.0.0.0/0
公共可访问性:是
数据库选项
IAM DB身份验证:已禁用
在AWS Lambda中,我还添加了 AWSLambdaVPCAccessExecutionRole 策略
谢谢。