Невозможно подключить службу 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