Conéctate a Cloud SQL para MySQL desde Cloud Run
Aprende a implementar una app de muestra en Cloud Run conectada a una instancia de MySQL con la Google Cloud consola y una aplicación cliente.
Si suponemos que completas todos los pasos de manera oportuna, los recursos creados en esta guía de inicio rápido suelen costar menos de un dólar (USD).
Para seguir la guía paso a paso sobre esta tarea directamente en la consola Google Cloud , haz clic en Guiarme:
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Verifica que tengas los permisos necesarios para completar este inicio rápido.
-
Habilita las API de Cloud necesarias para ejecutar una app de muestra de Cloud SQL en Cloud Run.
Console
Haz clic en Habilitar las API para habilitar las API necesarias en esta guía de inicio rápido.
Esto habilita las siguientes API:
- API de Compute Engine
- API de Cloud SQL Admin
- API de Cloud Run
- API de Container Registry
- API de Cloud Build
- API de Service Networking
gcloud
Haz clic en el siguiente botón para abrir Cloud Shell, que proporciona acceso de línea de comandos a tus recursos de Google Cloud directamente desde el navegador. Cloud Shell se puede usar para ejecutar los comandos de
gcloudque se presentan en esta guía de inicio rápido.Ejecuta el siguiente comando de
gcloudcon Cloud Shell:gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \ containerregistry.googleapis.com cloudbuild.googleapis.com servicenetworking.googleapis.com
Este comando habilita las siguientes API:
- API de Compute Engine
- API de Cloud SQL Admin
- API de Cloud Run
- API de Container Registry
- API de Cloud Build
- API de Service Networking
Roles obligatorios
Para obtener los permisos que necesitas para implementar una app de ejemplo en Cloud Run conectada a una instancia de MySQL, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto que deseas usar:
-
Crear o borrar una instancia, una base de datos y un usuario:
Rol de administrador de Cloud SQL (
roles/cloudsql.admin) -
Crear o borrar una cuenta de servicio de IAM:
Rol de administrador de cuentas de servicio (
roles/iam.serviceAccountAdmin). -
Crea una conexión:
-
Administrador de Service Networking (
roles/servicenetworking.networksAdmin)) -
Administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin)
-
Administrador de Service Networking (
- Visualizar objetos y sus metadatos: Visualizador de objetos de almacenamiento (roles/storage.objectViewer)
- Proporciona permisos para administrar políticas en proyectos: Administrador de IAM de proyecto (roles/resourcemanager.projectIamAdmin)
- Acceso de lectura y escritura a todos los recursos de Cloud Run: Desarrollador de Cloud Run (roles/run.developer)
- Implementa y administra los recursos de origen implementados de Cloud Run: Desarrollador de origen de Cloud Run (roles/run.sourceDeveloper).
- Para permitir el acceso público, usa el rol de administrador de Cloud Run (roles/run.admin).
- Para ejecutar operaciones como la cuenta de servicio: Usuario de cuenta de servicio (roles/iam.serviceAccountUser).
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Configura Cloud SQL
Crea una instancia de Cloud SQL
Crea una base de datos
Sigue estos pasos para crear una base de datos:
Console
-
En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.
- Selecciona
quickstart-instance. - En el menú de navegación de SQL, selecciona Bases de datos.
- Haga clic en Crear base de datos.
- En el campo Nombre de la base de datos del cuadro de diálogo Crear una base de datos, ingresa
quickstart-db. Deja los valores para el grupo de caracteres y la intercalación. - Haz clic en Crear.
gcloud
Ejecuta el comando gcloud
sql databases create para crear una base de datos.
gcloud sql databases create quickstart-db --instance=quickstart-instance
Crea un usuario
Sigue estos pasos para crear un usuario:
Console
-
En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Selecciona Usuarios en el menú de navegación de SQL.
- Haz clic en Agregar cuenta de usuario.
- En la página Agrega una cuenta de usuario a la instancia instance_name, agrega la siguiente información:
- Nombre de usuario: Configurado como
quickstart-user - Contraseña: especifica una contraseña para tu usuario de la base de datos. Toma nota de esto para usarlo en un paso posterior de esta guía de inicio rápido.
- En la sección Nombre de host, el valor predeterminado es Permitir cualquier host, lo que significa que el usuario puede conectarse desde cualquier dirección IP.
De manera opcional, selecciona Restringir host por dirección IP o rango de direcciones y, luego, ingresa una dirección IP o un rango de direcciones en la sección Host. Luego, el usuario solo podrá conectarse desde la dirección IP o las direcciones especificadas.
- Nombre de usuario: Configurado como
- Haz clic en Agregar.
gcloud
Antes de ejecutar el siguiente comando, realiza los siguientes reemplazos:
- PASSWORD por una contraseña para el usuario de tu base de datos. Toma nota de esto para usarlo en un paso posterior de esta guía de inicio rápido.
Ejecuta el comando gcloud sql users create para crear el usuario.
gcloud sql users create quickstart-user \ --instance=quickstart-instance \ --password=PASSWORD
Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para MySQL local: 32 caracteres para MySQL 8.0 y versiones posteriores, y 16 caracteres para versiones anteriores.
Implementa una app de muestra en Cloud Run
Configura una cuenta de servicio de Cloud Run
Console
-
En la consola de Google Cloud , ve a la página Cuentas de servicio de IAM.
- Haz clic en el menú Acciones junto a la cuenta de servicio y, luego, en Administrar acceso.
- Haz clic en Agregar otro rol y, luego, busca y selecciona el rol
Cliente de Cloud SQL (
roles/cloudsql.client) en el menú desplegable Rol. - Haz clic en Agregar otro rol y, luego, busca y selecciona el rol de
Visualizador de objetos de Storage (
roles/storage.ObjectViewer) en el menú desplegable Rol. - Haz clic en Guardar.
gcloud
-
Ejecuta el siguiente comando de
gcloudpara obtener una lista de las cuentas de servicio del proyecto:gcloud iam service-accounts list
- Copia el CORREO ELECTRÓNICO de la cuenta de servicio predeterminada de Compute Engine.
- Ejecuta el siguiente comando para agregar el rol de cliente de Cloud SQL
a la cuenta de servicio predeterminada de Compute Engine:
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/cloudsql.client"
- Ejecuta el siguiente comando para agregar el rol de Visualizador de objetos de Storage
a la cuenta de servicio predeterminada de Compute Engine:
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/storage.ObjectViewer"
Configura una app de ejemplo de Cloud SQL
Con una instancia de Cloud SQL, una base de datos y una cuenta de servicio con permisos de cliente, ahora puedes configurar una aplicación de muestra para conectarte a tu instancia de Cloud SQL.
Implementa la app de ejemplo
Los pasos para implementar la muestra en Cloud Run dependen del tipo de dirección IP que asignaste a tu instancia de Cloud SQL.
El método de conexión de la imagen varía según las variables de entorno que se establezcan.
- Para conectarte con TCP, establece el valor de la variable de entorno
INSTANCE_HOST. Este método de conexión respeta los certificados y los puertos configurados como variables de entorno. - Para conectarte con sockets Unix, establece el valor de la variable de entorno
INSTANCE_UNIX_SOCKET.No establezcas el valor de la variable de entorno
INSTANCE_HOST.Los sockets Unix no son compatibles de forma nativa con Java. Si tu aplicación está escrita en Java, debes usar el conector de Java de Cloud SQL.
- Para conectarte con uno de los conectores de lenguaje de Cloud SQL, establece los valores de las variables de entorno
INSTANCE_CONNECTION_NAMEyDB_IAM_HOST.No establezcas los valores para las siguientes variables de entorno:
INSTANCE_HOSTINSTANCE_UNIX_SOCKETDB_PORTDB_ROOT_CERTDB_CERTDB_KEY
3307.
Realiza una limpieza
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.
-
En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.
- Selecciona la instancia
quickstart-instancepara abrir la página de detalles de la instancia. - En la barra de íconos en la parte superior de la página, haz clic en Borrar.
- En el cuadro de diálogo Borrar instancia, escribe
quickstart-instancey, luego, haz clic en Borrar. -
En la consola de Google Cloud , ve a la página Cloud Run.
- Selecciona la casilla de verificación junto al nombre del servicio
quickstart-service. - Haz clic en Borrar en la parte superior de la página de Cloud Run.
Pasos opcionales de limpieza
Si no usas la función de cliente de Cloud SQL que asignaste a la cuenta de servicio de Compute Engine, puedes quitarla.
-
En la consola de Google Cloud , ve a la página Cuentas de servicio.
- Haz clic en el ícono de edición (que tiene forma de lápiz) en la cuenta de IAM llamada Cuenta de servicio predeterminada de Compute Engine.
- Borra la función cliente de Cloud SQL.
- Haz clic en Guardar.
Si no usas las API que se habilitaron como parte de esta guía de inicio rápido, puedes inhabilitarlas.
- API que se habilitaron en esta guía de inicio rápido:
- API de Compute Engine
- API de Cloud SQL Admin
- API de Cloud Run
- API de Container Registry
- API de Cloud Build
En la consola de Google Cloud , ve a la página APIs.
Selecciona la API que quieras inhabilitar y, luego, haz clic en el botón Inhabilitar API.
¿Qué sigue?
En función de tus necesidades, puedes obtener más información para crear instancias de Cloud SQL.También puedes obtener información sobre cómo crear usuarios de MySQL y bases de datos para tu instancia de Cloud SQL.
Si deseas obtener más información sobre los precios, consulta Precios de Cloud SQL para MySQL.
Conoce más sobre:
- La configuración de la instancia de Cloud SQL con una dirección IP pública
- La configuración de la instancia de Cloud SQL con una dirección IP privada
Además, puedes obtener información sobre la conexión a una instancia de Cloud SQL desde otras aplicaciones de Google Cloud:

