node.js - 使用 Google Firebase 功能连接到 Postgres (AWS RDS) 仍然失败
问题描述
我正在尝试通过我的 Google Firebase Functions 后端连接到我的 AWS rds postgres 数据库。经过反复试验,我成功地在本地连接到它(运行firebase emulators:start --only functions
并成功查询了数据库)。但是,{ Error: connect ECONNREFUSED 127.0.0.1:3306
当我将函数部署到远程 Google Firebase Functions 服务器时,我遇到了问题。
我已将我的 AWS RDS 数据库设置为可公开访问。我知道我需要允许来自我的 Google Firebase 服务器的入站流量,但从我设法挖掘出来的情况来看,这表明我正在使用的可用区 (us-central-1) 有数十个与之关联的 IP 地址。我放弃并允许所有传入流量(是的,我知道这很糟糕,但我还没有投入生产)。但是,我仍然遇到同样的错误!
关于如何使其正常工作以及如何正确连接它以防止所有传入流量的任何想法?
下面是我如何在我的 firebase 函数中连接到我的 aws db。函数本身(存储代码的地方)是 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 服务器。因此,我认为这不适用于我
解决方案
看起来问题实际上与我如何调用函数 API 本身有关。我不小心向 XXXXX/widgets/widgets/route 发送了 https 请求,而不是 XXXXX/widgets/route。基本上,我在那里有两次我的函数名。
另一个可能与后来的读者更相关的问题是,因为我正在移植一个功能齐全的 express 应用程序,所以我仍然有一个在 index.ts 中调用的方法,它启动了 express 服务器。在 Google Functions 上,这不是必需的,并且可能是我头痛的另一个原因
推荐阅读
- java - 无法接受 selenium java - Firefox 浏览器中的警报
- scala - 如何将 Http 管理到 Akka Stream 并将消息发送到 Kafka?
- cpanel - 在 cPanels 文件管理器中移动期间丢失的文件
- java - 无法加载 cxf
- carousel - 如何在 ngb-carousel 中添加自定义幻灯片指示器?
- android - 如何使用 Jetpack Navigation 从嵌套 Fragment 导航到父 Fragment?
- ionic-framework - 离子产品图片加载
- javascript - 如何在反应上渲染gsap动画?
- c++ - 我们可以通过 IPC 传递一个具有动态管理成员的类对象吗?
- phaser-framework - 将 Phaser 2/CE 项目迁移到 Phaser 3 的命名约定是什么?