通过Sequelize连接RDS时,AWS Lambda(NodeJS)引发错误

时间:2018-07-07 18:11:57

标签: node.js amazon-web-services aws-lambda sequelize.js amazon-rds

基于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 策略

谢谢。

0 个答案:

没有答案