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

无法从 Lambda 连接到 AWS/RDS

仲俊豪
2023-03-14

我有一个Node.js Express应用程序,它使用Sequelize连接到数据库。我想在Lambda上部署我的应用程序(使用API网关),并使用RDS Postgres数据库(无服务器)

我创建了一个RDS实例和一个无服务器设置。从EC2实例,我能够毫无问题地连接到RDS实例和无服务器数据库。

然而,当我在Lambda上部署相同的代码时,我无法连接到任何一个DB实例。事实上,我在任何地方都没有看到任何错误消息。

sequelize = new Sequelize(process.env.POSTGRES_DBNAME, process.env.POSTGRES_USERNAME, process.env.POSTGRES_PASSWORD, {
        host: process.env.POSTGRES_HOST,
        dialect: 'postgres',
        logging: false,
        operatorsAliases: false
});

// Test connection
(async function() {
    try {
        console.log('Connecting to: ', process.env.POSTGRES_DBNAME, process.env.POSTGRES_USERNAME, process.env.POSTGRES_PASSWORD, process.env.POSTGRES_HOST);

      await sequelize.authenticate();
      console.log('Connection has been established successfully.');
    } catch (error) {
      console.error('Unable to connect to the database:', error);
    }
})();

我甚至尝试使用带有RDS代理的MySQL实例,但它是一样的——测试连接部分不执行,日志中既没有成功也没有错误消息。我想知道我是否遗漏了什么。数据库已配置为可以从外部访问。

共有3个答案

利俊迈
2023-03-14

问题出在我的快递包裹上。我的AWS配置是正确的,用普通的DB连接替换Lambda入口代码并打印一个值列表是可行的,但是用Express代码插入它是可行的。我不确定是什么问题-我发现升级express版本解决了我的问题。

谢谢大家抽出时间回答我的问题。

郭单鹗
2023-03-14

要从Lambda函数连接到Amazon RDS实例,请参考这个Amazon文档:如何配置Lambda函数以连接到RDS实例?。

梁丘宏硕
2023-03-14

我的猜测是您没有正确配置Lambda IAM权限。为了让Lambda能够访问RDS,您可以使用AWSLambdaVPCAccessE

AWS Lambda 开发人员指南有一个教程,其中提供了如何完成此操作的示例。有关更多详细信息,请阅读开发人员指南中的配置 Lambda 函数以访问 VPC 中的资源一章。

 类似资料:
  • 我正在做一个NodeJS项目,似乎使用了非常常见的AWS设置。我的ApiGateway接收调用,触发lambda A,然后这个lambda根据从ApiGate传递的参数触发其他lambda,比如B或C。 Lambda A需要访问MongoDB,为了避免自己运行MongoDB时遇到麻烦,我决定使用mLab。ATM Lambda A正在使用NodeJS驱动程序访问MongoDB。现在,为了不在每次执行

  • 我正在尝试从用java编写的Lambda连接到AWS Oracle RDS。用于进行连接的连接钱包的二进制文件。 当我从SQLDeveloper使用它时,它工作正常。但是当我使用此 java 代码时,不会发生同样的情况。 在SQLDeveloper中,我使用的自定义jdbc url是:DBC:Oracle:thin:@(DESCRIPTION =(ADDRESS _ LIST =(ADDRESS

  • 我正在使用一些在VPC内部运行的AWS Lambda函数,这些函数需要连接到后端Mongo Atlas数据库进行数据存储/检索。 我是用Javascript编码的,所以很自然地使用了官方的MongoDB Node JS客户端来建立连接。我面临的问题是,每当我进行一些并发lambda调用时,其中一些调用都无法成功建立连接,并且基本上一直挂起,直到Lambda超时。例如,如果要调用5个不同的函数,2个

  • 有可能从AWS Lambda函数连接到Redis ElastiCache集群吗? 我不知道是配置问题还是根本不可能。 更新(2016年2月11日):亚马逊为AWS Lambda推出了VPC。 https://aws.amazon.com/about-aws/whats-new/2016/02/access-resources-with-a-vpc-using-aws-lambda/

  • 响应:{“errormessage”:“2018-06-06t11:28:53.775z任务在3.00秒后超时”} 我该如何解决这个问题??

  • 问题内容: 我正在尝试使用连接到RDS数据库的Node.js编写Lambda函数。该数据库正在运行,并且可以从我的Elastic Beanstalk环境访问。当我运行该函数时,它将返回超时错误。 尝试将超时延长到5分钟,结果完全相同。 经过一些研究,我得出的结论是,这可能是一个安全问题,但无法在Amazon文档或此答案中找到解决方案(这是我只能在该主题上找到的解决方案)。 以下是安全性详细信息:

  • 我正在尝试使用 Node 编写一个 Lambda 函数.js该函数连接到我的 RDS 数据库。该数据库正在运行,可以从我的 Elastic Beanstalk 环境访问。当我运行该函数时,它返回超时错误。 尝试将超时增加到 5 分钟,结果完全相同。 经过一些研究,我得出的结论是,这可能是一个安全问题,但在亚马逊的留档或这个答案中找不到解决方案(这是我在这个话题上唯一能找到的答案)。 以下是安全详细