es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo conectarse a Google Cloud SQL (PostgreSQL) desde Cloud Functions?

Siento como si hubiera intentado todo. Tengo una función en la nube que intento conectar a Cloud SQL (motor PostgreSQL). Antes de hacerlo, extraigo la información de la cadena de conexión de Secrets Manager, configuro eso en un objeto de credenciales y llamo a un grupo pg (paquete) para ejecutar una consulta de base de datos.

A continuación se muestra mi código:
Credenciales:

import { Pool } from 'pg';

const credentials: sqlCredentials = {
   "host":"127.0.0.1",
   "database":"miPrimeraBaseDeDatos",
   "port":"5432",
   "user":"postgres",
   "password":"postgres1!"
}

const pool: Pool = new Pool(credentials);

await pool.query(`select CURRENT_DATE;`).catch(error => console.error(`error in pool.query: ${error}`));

Al ejecutar la función en la nube con este código, obtengo el siguiente error:

error in pool.query: Error: connect ECONNREFUSED 127.0.0.1:5432

He intentado actualizar el host a la IP privada de la instancia Cloud SQL, y también actualizar el host al nombre de instancia de Cloud SQL en este entorno, pero no funciona. ¿Alguna otra idea?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la configuración del host. Como estás intentando conectarte a Cloud SQL, debes asegurarte de que estás utilizando la dirección correcta del host. Aquí hay algunos pasos que puedes intentar:

    1. Verifica que la instancia de Cloud SQL esté en ejecución y configurada correctamente para permitir conexiones externas. Puedes hacer esto desde la consola de Cloud SQL revisando el estado de la instancia y las reglas de firewall.
    2. Actualiza la configuración del host en tu objeto de credenciales para utilizar la dirección IP privada o pública de la instancia de Cloud SQL (si se permite la conectividad externa). Puedes encontrar estas direcciones en la consola de Cloud SQL.

    3. Si aún tienes problemas, intenta agregar las siguientes opciones de configuración a tu objeto de credenciales:

      ssl: {
       rejectUnauthorized: false
      }
      

      Esto deshabilitará la validación del certificado SSL, lo que a veces puede causar errores ECONNREFUSED.

    4. Asegúrate de que las credenciales de usuario que estás utilizando tengan los permisos necesarios para acceder a la base de datos.

    Si nada de lo anterior ayuda, es posible que desees revisar la documentación de Cloud SQL o considerar contactar al soporte de Google Cloud para obtener más ayuda.

Comments are closed.