使用Google Firebase功能仍无法连接到Postgres(AWS RDS)

时间:2020-08-08 17:40:15

标签: node.js postgresql firebase google-cloud-functions amazon-rds

我正在尝试通过我的Google Firebase Functions后端连接到我的AWS rds postgres数据库。经过一番尝试和错误之后,我成功地设法在本地连接了它(运行firebase emulators:start --only functions并成功查询了数据库)。但是,将功能部署到远程Google Firebase功能服务器时,我遇到了{ Error: connect ECONNREFUSED 127.0.0.1:3306

我已将我的AWS RDS数据库设置为可公开访问。我知道我需要允许来自Google Firebase服务器的入站流量,但是根据我设法进行的挖掘,this显示我正在使用的可用区(us-central-1)具有数十个IP地址关联用它。我放弃了,并允许所有传入流量(是的,我知道那很糟糕,但我还没有投入生产)。但是,我仍然遇到相同的错误!

我也没读过thisthis

关于如何使它正常工作以及如何正确连接它的任何想法,以便我不允许所有传入的流量?

以下是我如何在Firebase函数中连接到AWS数据库的方法。函数本身(存储代码的位置)位于us-central:

  const {Pool} = require('pg');

  private static readonly config = {
    user: 'xxxxxxxx',
    host: 'xxxxxxx.yyyyyyyyy.us-east-2.rds.amazonaws.com',
    database: 'postgres',
    password: 'xxxxxxxxxx',
    port: 5432
  };
  private static readonly pool = new Pool(RemoteDBHandler.config);

编辑:有人将我的问题标记为重复,所以我在这里做了一个副本。现在来看,在localhost(127.0.0.1)上尝试连接很奇怪。我不知道为什么会这样,因为我正在连接到AWS服务器。因此,我认为this不适用于我

1 个答案:

答案 0 :(得分:0)

看起来问题实际上出在我如何调用函数API本身。我不小心将https请求发送到XXXXX / widgets / widgets / route而不是XXXXX / widgets / route。基本上,我有两次函数名称。

另一个问题可能与后来的读者更相关,因为我正在移植功能齐全的Express应用程序,因此我仍然有一种方法需要在启动Express服务器的index.ts中调用。在Google Functions中,这不是必需的,并且可能是我头痛的另一个原因