Conectar una Base de Datos de MySQL con Laravel y Google Cloud Run
Antes de seguir este tutorial, asegurate de haber creado una instancia de base de datos de MySQL, si no lo has hecho aún, te recomiendo este tutorial sobre ¿Cómo crear una instancia de MySQL en Google Cloud?
Conexión Unix Socket
Debido a que nuestro contenedor de docker en Cloud Run no posee una base de datos a la que nos podamos conectar directamente, deberemos establecer una conexión entre procesos o también llamada Conección Unix Socket.
Por suerte, en laravel este proceso es tan simple como crear una variable de entorno con el path de la conexión he informarle a nuestro servicio de Cloud Run que estamos haciendo uso de la base de datos a través de unix socket.
A continuación te muestro los pasos para establecer este tipo de conexión.
Variable de Ambiente DB_SOCKET
En nuestro servicio de Cloud Run vamos a crear una variable que se llame DB_SOCKET
, que contendrá el nombre de nuestra conexión a la base de datos junto con el prefijo /cloudsql/
Este valor lo puedes encontrar en el menú principal de tu base de datos tal y como se muestra en la siguiente imagen.
Una vez agregada la variable, pasaremos a informarle a tu servicio sobre la conexión de Cloud SQL que necesitamos.
Conexión de Cloud SQL
Para establecer esta conexión debemos ir la sección Conexiones del servicio de Cloud Run y en Conexiones de SQL agregar la base de datos de la cual hemos tomado el path.
Guardar y Reiniciar el Servicio
Una vez has agregado el path y establecido la conexión unix socket, deberás guardar los cambios y esperar a que se genere automáticamente una nueva versión del servicio con los nuevos cambios que harán que tu aplicación de laravel pueda hacer uso de las bases de datos de Cloud SQL.