我正在尝试通过我的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地址关联用它。我放弃了,并允许所有传入流量(是的,我知道那很糟糕,但我还没有投入生产)。但是,我仍然遇到相同的错误!
关于如何使它正常工作以及如何正确连接它的任何想法,以便我不允许所有传入的流量?
以下是我如何在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不适用于我
答案 0 :(得分:0)
看起来问题实际上出在我如何调用函数API本身。我不小心将https请求发送到XXXXX / widgets / widgets / route而不是XXXXX / widgets / route。基本上,我有两次函数名称。
另一个问题可能与后来的读者更相关,因为我正在移植功能齐全的Express应用程序,因此我仍然有一种方法需要在启动Express服务器的index.ts中调用。在Google Functions中,这不是必需的,并且可能是我头痛的另一个原因