Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

229
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda