Соединение Postgres получает ETIMEDOUT в развернутой функции Firebase (работает локально) - PullRequest
0 голосов
/ 10 февраля 2019

Я написал пару функций Firebase, которые используют node-postgresql для выполнения запросов к внешней базе данных PostgreSQL, размещенной на Amazon (RDS), используя это общее поведение:

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 [as oncomplete] (net.js: 1191:14) errno: 'ETIMEDOUT', код: 'ETIMEDOUT', системный вызов: 'connect', адрес: 'xxx.xxx.xxx.xxx', порт: 5432} "

Адрес сервера ипорт правильный, поэтому я предполагаю, что учетные данные были правильно отправлены через конфигурацию firebase. Исходящие запросы GET с использованием bluebird работают нормально, даже на случайных портах. Я начинаю задумываться, возможен ли вызов внешней базы данных ...у идеи?

Кроме того, на случай, если кому-то интересно, Я не на бесплатном плане искры , так что это не должно быть проблемой:

Blaze plan

...