Unable to connect to postgres in cloud sql from google app engine nodes
Asked Answered
C

1

1

I am working on a nodejs and postgres application. Both are deployed in google. I have my postgres in google cloud sql and nodejs is deployed in google app engine. I am trying to connect to postgres from nodejs, but it throws it cannot connect to cloud postgres. I have updated app.yml file and i am using regular pg client and not knex. Can anyone help me. My config as below

const client = new Client({
  user: 'postgres',
  host:'xx.xx.xx.xx',
  socketpath: '/cloudsql/proj-name:us-central1:app-name',
  database: 'xxxxx',
  password: 'xxxx',
  port: 5432,
  ssl: true,
});
client.connect();

I tried without socket path and host. Nothing works. All this works fine from my local machine, i have whitelisted my local public ip.Any help would be much appreciated.

Error i get

(node:16) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: connect ETIMEDOUT xx.xx.xx.xx:5432
Convent answered 24/3, 2018 at 11:24 Comment(2)
are the Cloud SQL instance and App Engine app hosted on different GCP projects? If so, you need to grant access to the GAE service account on the other project as explained here. In any case, you'll also find more instructions on that link that could help.Hoban
no both are in same project.Convent
C
1

Changing to below configuration worked.

  const client = new Client({
      user: 'postgres',
      host: '/cloudsql/proj-name:us-central1:app-name',
      database: 'xxxxx',
      password: 'xxxx',
      port: 5432
    });

client.connect();
Convent answered 15/5, 2018 at 9:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.