Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

227
Vistas
Google Cloud Run no puede llegar a Cloud SQL

Todo funcionaba bien hace un momento, pero de repente Google Cloud Run no puede conectarse con Cloud SQL. Tanto Cloud Run como Cloud SQL están en el mismo proyecto. Cloud SQL tiene IP pública.

Cloud Run está ejecutando una aplicación Django/uwsgi/nginx en contenedores. Obteniendo el siguiente error:

 MySQLdb._exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'xx.xxx.xx.xxx:3306' (110)")

Configuración de Django:

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': my_db_name, 'USER': my_db_user, 'PASSWORD': my_db_password, 'HOST': cloud_sql_ip_address, 'PORT': '3306', } }

A continuación se muestra la pieza yaml de Cloud Run:

 annotations: run.googleapis.com/client-name: gcloud client.knative.dev/user-image: my_custom_manage run.googleapis.com/client-version: 347.0.0 run.googleapis.com/cloudsql-instances: my_project_id:us-central1:my_sql_server autoscaling.knative.dev/maxScale: '10' run.googleapis.com/sandbox: gvisor

También verifiqué esto: https://cloud.google.com/sql/docs/mysql/connect-run

La cuenta de servicio que está adjunta al servicio Cloud Run tiene una Compute Engine default service account lo que básicamente significa que tiene todo el acceso.

Solución : para cualquier persona que tenga esta pregunta, use la referencia del socket, no la IP y el puerto. Dado que Cloud Run crea un socket para conectarse a Cloud SQL y la IP:3306 de Django no funciona.

Mi actualización de la configuración de django DB:

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': my_db_name, 'USER': my_db_user, 'PASSWORD': my_db_password, 'HOST': f'/cloudsql/cloud_sql_connection_name' } }

Sin embargo, no estoy seguro de por qué funcionaba bien antes con IP:3306 , Cloud Run debería haber dado un error en el inicio.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Cloud Run usa un socket de Unix para conectarse a SQL.

Según su mensaje de error, parece que intenta conectarse directamente a la IP.

Verificaría el código de la aplicación y vería si hubo una actualización no detectada, la cadena de conexión debe basarse en un socket y no en una IP,

el formato de socket es: /cloudsql/connection_id

Ver más aquí

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda