Postgres连接在已部署的Firebase功能中获取ETIMEDOUT(在本地工作)

时间:2019-02-10 17:32:06

标签: postgresql firebase google-cloud-platform google-cloud-functions node-postgres

我编写了两个Firebase函数,它们使用node-postgresql来使用以下一般行为向Amazon(RDS)上托管的外部PostgreSQL数据库发出请求:

import { Client } from "pg"
import { config } from "firebase-functions"

export async function sendQuery(query, args?) {
  // use firebase environment config
  const client = new Client(config().postgres) 
  await client.connect()

  const res = await client.query(query, args)

  await client.end()
  return res
}

此代码在本地可以正常运行,它可以毫无问题地访问我的本地Postgres服务器或Amazon RDS。

当我部署使用此sendQuery函数的云函数并尝试触发它们时,这是我从日志中得到的内容:

  

{错误:连接ETIMEDOUT xxx.xxx.xxx.xxx:5432       在TCPConnectWrap.afterConnect上[作为完成](net.js:1191:14)   errno:“ ETIMEDOUT”,   代码:“ ETIMEDOUT”,   syscall:“连接”,   地址:“ xxx.xxx.xxx.xxx”,   端口:5432}“

服务器地址和端口正确,因此我假设凭据已通过Firebase配置正确发送。使用bluebird的出站GET请求即使在随机端口上也可以正常工作。我开始怀疑是否甚至可以调用外部数据库...有什么想法吗?

另外,以防万一有人想知道,不是有免费的火花计划,所以这绝对不是问题:

Blaze plan

0 个答案:

没有答案