Search code examples
sqlgoogle-app-enginecloudgoogle-cloud-sql

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


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

Solution

  • 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();