节点Lambda:MySQL查询从不运行

节点Lambda:MySQL查询从不运行,mysql,node.js,amazon-web-services,aws-lambda,Mysql,Node.js,Amazon Web Services,Aws Lambda,和邮递员一起测试,我会尽可能清楚地说明这一点,请告知这是否有意义 我有一个Lambda,它在AWS上使用MySQL RDS数据库,在访问AWS上的数据库时在本地工作良好。从auth端点成功获取JWT后,我尝试点击login端点,得到一个502坏网关。使用CloudWatch日志,我可以在登录查询运行之前跟踪故障。我已经确认我的MySQL配置是正确的,并且我已经连接到数据库。lambda和数据库位于同一区域DB:us-east-1f,lambda:us-east-1 我已经确认该端点的选项和请求后

和邮递员一起测试,我会尽可能清楚地说明这一点,请告知这是否有意义

我有一个Lambda,它在AWS上使用MySQL RDS数据库,在访问AWS上的数据库时在本地工作良好。从
auth
端点成功获取JWT后,我尝试点击
login
端点,得到一个
502坏网关
。使用CloudWatch日志,我可以在登录查询运行之前跟踪故障。我已经确认我的MySQL配置是正确的,并且我已经连接到数据库。lambda和数据库位于同一区域
DB:us-east-1f
lambda:us-east-1

我已经确认该端点的选项和请求后方法都是在API网关中启用CORS的情况下设置的。我正在使用serverless.yml在所有端点上设置
cors:true
,即使我正在索引文件中使用
app.use(cors())

502的错误消息是,
{“消息”:“内部服务器错误”}

以下是我的代码中的失败点:

'use strict';

const mysql = require('./index');

module.exports = {
  loginSql: async (email, password) => {
    // MAKES IT HERE AND THE PARAMS ARE CORRECT
    try {
      console.log('IN TRY %%%%%%%%%%%%%%');
      // SEEMS TO DIE HERE
      const results = await mysql.query({
        sql: `SELECT 
        id, first_name, last_name, email 
        FROM users 
        WHERE email = ? 
        AND password = ?`,
        timeout: 50000,
        values: [email, password],
      });
      // NEVER MAKES IT HERE /////////
      console.log('QUERY RAN %%%%%%%%%%%%');
      mysql.end();
      if (results.length < 1) return false;
      return results;
    } catch (error) {
      // DOESN'T THROW ERROR
      console.log('LOGIN DB ERROR', error);
      throw new Error('LOGIN DB ERROR THROWN', error);
    }
  },
};
“严格使用”;
const mysql=require('./index');
module.exports={
loginSql:async(电子邮件、密码)=>{
//在这里,参数是正确的
试一试{
console.log('IN TRY%%');
//好像死在这里了
const results=wait mysql.query({
sql:`SELECT
id、名字、姓氏、电子邮件
来自用户
其中email=?
密码=?`,
超时:50000,
值:[电子邮件,密码],
});
//从来没来过这里/////////
log('查询已运行%;
end();
if(results.length<1)返回false;
返回结果;
}捕获(错误){
//不会抛出错误
log('LOGIN DB ERROR',ERROR);
抛出新错误(“抛出登录数据库错误”,错误);
}
},
};

我刚刚创建了完全相同的用例,我用Java编写了一个LAMBDA函数,用于查询MySQL RDS实例中的数据。它工作得很好

这是你的问题:

要从Lambda函数连接到RDS实例,您必须使用与RDS实例相同的安全组设置入站规则。有关详细信息


这里什么是
mysql
?这是我连接数据库时返回的
无服务器mysql
对象。我很高兴它能为您工作!很好的通话,在工作中我通常在serverless.yml文件中设置VPC和安全组,但由于某些原因,在这个个人项目中我忽略了它们。