Невозможно подключить службу CloudRun к серверу экземпляра CloudSQL ( Nodejs-Express-Typeorm)

У меня проблемы с подключением моего сервера node-express-typeorm к экземпляру CloudSQL Postgres с использованием CloudRun.

Я успешно добавил прокси-сервер базы данных на основе официального документа: https://cloud.google.com/run/docs/configuring/connect-cloudsql

И установить переменную среды для экспресс-услуг как

TYPEORM_URL=/cloudsql/[CONNECTION NAME]

Но приложение не запускается, так как не может подключиться к базе данных.

1 ответ

Решение

Я решил проблему. Виновником был TypeORM. TypeORM анализирует хост базы данных из TYPEORM_URL с помощью / разделитель. И это было только чтение cloudsql вместо /cloudsql/[CONNECTION NAME], Таким образом, приложению не удалось подключиться к правильной конечной точке.

Чтобы решить эту проблему, установите следующие переменные среды вместо TYPEORM_URL

TYPEORM_HOST=/cloudsql/[CONNECTION NAME]

TYPEORM_USERNAME=<username>

TYPEORM_PASSWORD=<password>

TYPEORM_DATABASE=<db>

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

вот мой

let confBase: PostgresConnectionOptions = {
    type: "postgres",
    host: dbHOST as string,
    port: parseInt(dbPORT as string, 10),
    username: dbUSER,
    password: dbPWD,
    database: dbDATABASE,
    synchronize: true,
    logging,
};

в HOST, если есть такая строка

dbHOST = "/cloudsql/THEPROJECT:THEREGION:THEINSTANCE"

Однако при попытке подключения я получил следующую ошибку:

 at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1126:14) {
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'connect',
  address: '/cloudsql/THEPROJECT:THEREGION:THEINSTANCE/.s.PGSQL.5432'

Я столкнулся с этой проблемой некоторое время. Я несколько раз проверил пользователя и прошился, все в порядке

RGDS

Другие вопросы по тегам