Los conectores de Cloud SQL son bibliotecas que proporcionan encriptación y autorización basada en Identity and Access Management (IAM) cuando se conectan a una instancia de Cloud SQL. No pueden proporcionar una ruta de red a una instancia de Cloud SQL, si aún no hay una.
Otras formas de conectarse a una instancia de Cloud SQL son el uso de un cliente de base de datos o el proxy de autenticación de Cloud SQL. Consulta la página Opciones de conexión para obtener más información sobre cómo conectarte a una instancia de Cloud SQL.
En esta página, se analizan los siguientes conectores de Cloud SQL:
- El conector de Java de Cloud SQL
- El conector de Python de Cloud SQL (Abrir en Colab)
- El conector de Go de Cloud SQL
- El conector de Node.js para Cloud SQL
Ventajas
El uso de un conector de Cloud SQL proporciona los siguientes beneficios:
- Autorización de IAM: Usa permisos de IAM para controlar quién o qué puede conectarse a tus instancias de Cloud SQL.
- Conveniencia: Quita el requisito de administrar certificados SSL, configurar reglas de firewall o habilitar redes autorizadas.
- Autenticación de la base de datos de IAM: Proporciona compatibilidad con la autenticación automática de la base de datos de IAM de Cloud SQL.
Antes de comenzar
- Habilita la API de Administrador de Cloud SQL
- Crea una instancia de Cloud SQL y configura el usuario predeterminado.
Para obtener más información sobre la creación de instancias, consulta Crea instancias.
Para obtener más información sobre la configuración del usuario predeterminado, consulta Configura la contraseña de la cuenta de usuario predeterminada.
- Configura las funciones y permisos necesarios para conectarte a una instancia de Cloud SQL.
Configuración
Java
El conector de Java de Cloud SQL es una biblioteca que proporciona encriptación y autorización basadas en IAM cuando se conecta a una instancia de Cloud SQL. No puede proporcionar una ruta de red a una instancia de Cloud SQL si aún no hay una.
Instalación
Si deseas obtener instrucciones para desarrollar y usar los controladores para JDBC y R2DBC con el conector de Java de Cloud SQL, consulta los siguientes vínculos:
- JDBC: conéctate a Cloud SQL con JDBC.
- R2DBC: conéctate a Cloud SQL con R2DBC.
Para ver ejemplos de esta biblioteca que se usa en el contexto de una aplicación, consulta estas aplicaciones de muestra.
Autenticación
Esta biblioteca usa las credenciales predeterminadas de la aplicación para autenticar la conexión con el servidor de Cloud SQL.
Para activar las credenciales de forma local, usa el siguiente comando de gcloud:
gcloud auth application-default login
Conéctate con IntelliJ
Para conectar IntelliJ a tu instancia de Cloud SQL, debes agregar la biblioteca como un JAR con dependencias en la sección Archivos adicionales en la página de configuración del controlador. Por ejemplo, los archivos de fat JAR precompilados se pueden encontrar en la página Versiones del conector de Java de Cloud SQL para este propósito.
Python
El conector de Python de Cloud SQL es una biblioteca que se puede usar junto con un controlador de base de datos para permitir a los usuarios con permisos suficientes conectarse a una base de datos de Cloud SQL sin tener que incluir IPs en la lista de entidades permitidas ni administrar certificados SSL de forma manual.
Si deseas ver ejemplos interactivos sobre el uso del conector de Python de Cloud SQL, abre el notebook de conectores de Python de Cloud SQL.
Los controladores que admite PostgreSQL son pg8000 y asyncpg.
Instalación
Para instalar la versión más reciente del conector de Python de Cloud SQL, usa el comando pip install
y especifica el controlador pg8000
o asyncpg
para tu base de datos:
pip install "cloud-sql-python-connector[pg8000]"
o
pip install "cloud-sql-python-connector[asyncpg]"
Autenticación
Esta biblioteca usa las credenciales predeterminadas de la aplicación para autenticar la conexión con el servidor de Cloud SQL.
Para activar las credenciales de forma local, usa el siguiente comando de gcloud:
gcloud auth application-default login
Go
El conector de Cloud SQL para Go es un conector de Cloud SQL diseñado para usarse con el lenguaje Go. Para mejorar la seguridad, este conector usa la encriptación sólida TLS 1.3 autenticada de forma manual entre el conector del cliente y el proxy del servidor, independientemente del protocolo de base de datos.
Instalación
Puedes instalar este repositorio con go get
:
go get cloud.google.com/go/cloudsqlconn
Node.js
El conector de Node.js es una biblioteca diseñada para usarse con el entorno de ejecución de Node.js que te permite conectarte de manera segura a tu instancia de Cloud SQL.
Instalación
Puedes instalar la biblioteca con npm install
:
npm install @google-cloud/cloud-sql-connector
Uso
Java
Para ver este fragmento en el contexto de una aplicación web, consulta el archivo README en GitHub.
Python
Consulta Cómo usar este conector para obtener instrucciones detalladas sobre cómo usar la biblioteca. Consulta el ejemplo de código de prueba de conexión en GitHub.
Go
Consulta Uso para obtener instrucciones detalladas sobre el uso de la biblioteca. Consulta el ejemplo de código de prueba de conexión en GitHub.
Node.js
Para obtener instrucciones detalladas sobre el uso de la biblioteca, consulta Uso.
Solucionar problemas
Versiones del controlador
Asegúrate de usar la versión más reciente de los conectores de Cloud SQL y el controlador de base de datos para evitar incompatibilidades. Algunas versiones anteriores de controladores no son compatibles.
Rutas de conexión
Los conectores de Cloud SQL proporcionan autorización para las conexiones, pero no proporcionan rutas de acceso nuevas a la conectividad. Por ejemplo, para conectarte a una instancia de Cloud SQL mediante una dirección IP privada, tu aplicación ya debe tener acceso a VPC.
Depurar problemas de conexión
Para obtener más ayuda sobre problemas de conexión, consulta las páginas Soluciona problemas y Depura problemas de conexión.
¿Qué sigue?
- Consulta la página principal del conector de Java de Cloud SQL en GitHub.
- Consulta la página principal del conector de Python de Cloud SQL en GitHub.
- Obtén más información sobre el proxy de Cloud SQL Auth.
- Obtén más información sobre IAM.
- Obtén información sobre opciones de asistencia.