Esta página contiene información y ejemplos para conectarse a una instancia de Cloud SQL desde un servicio que se ejecuta en un entorno flexible de App Engine.
Cloud SQL es un servicio de base de datos completamente administrado que le ayuda a configurar, mantener, administrar y gestionar sus bases de datos relacionales en la nube.
App Engine es una plataforma sin servidor y totalmente administrada para desarrollar y alojar aplicaciones web a gran escala. Puedes elegir entre varios lenguajes, bibliotecas y frameworks populares para desarrollar tus aplicaciones y dejar que App Engine se encargue del aprovisionamiento de servidores y del escalado de las instancias de tus aplicaciones según la demanda.
Configurar una instancia de Cloud SQL
- Habilite la API de administración de Cloud SQL en el Google Cloud proyecto desde el que te estás conectando, si aún no lo has hecho:
- Cree una instancia de Cloud SQL para PostgreSQL . Le recomendamos que elija una ubicación de instancia de Cloud SQL en la misma región que su servicio Cloud Run para mejorar la latencia, evitar costos de red y reducir el riesgo de fallos entre regiones.
De forma predeterminada, Cloud SQL asigna una dirección IP pública a cada nueva instancia. También puede asignar una dirección IP privada. Para obtener más información sobre las opciones de conectividad para ambas instancias, consulte la página "Resumen de la conexión" .
Configurar el entorno flexible de App Engine
Los pasos para configurar el entorno flexible de App Engine dependen del tipo de dirección IP que haya asignado a su instancia de Cloud SQL.IP pública (predeterminada)
Para configurar el entorno flexible de App Engine para habilitar conexiones a una instancia de Cloud SQL:
- Asegúrese de que la instancia tenga una dirección IP pública. Puede verificarlo en la página Descripción general de su instancia en Google Cloud consola . Si necesita agregar una, consulte la página "Configuración de IP pública" para obtener instrucciones.
- Obtenga el INSTANCE_CONNECTION_NAME de su instancia. Puede encontrar este valor en la página de descripción general de su instancia en Google Cloud consola o ejecutando el siguiente comando
gcloud sql instances describe
: Reemplace INSTANCE_NAME con el nombre de su instancia de Cloud SQL.gcloud sql instances describe INSTANCE_NAME
Asegúrese de que la cuenta de servicio que utiliza su aplicación para autenticar llamadas a Cloud SQL tenga el rol de IAM
Cloud SQL Client
.Para obtener instrucciones detalladas sobre cómo agregar roles de IAM a una cuenta de servicio, consulte Otorgar roles a cuentas de servicio .
De forma predeterminada, tu aplicación autorizará tus conexiones mediante la cuenta de servicio del entorno flexible de App Engine . La cuenta de servicio tiene el formato PROJECT_ID @appspot.gserviceaccount.com
.
Si la cuenta de servicio autorizadora pertenece a un proyecto diferente al de la instancia de Cloud SQL, será necesario agregar los permisos de IAM y de la API de administración de Cloud SQL para ambos proyectos.
app.yaml
de tu proyecto con la opción que mejor se adapte a tus necesidades. Puedes usar una lista de instancias separadas por comas para especificar varias opciones a la vez.Habilitación de un socket de dominio Unix
Para habilitar un socket de dominio Unix, agregue uno de los siguientes al archivo app.yaml
de su proyecto, dependiendo de si se está conectando a una o varias instancias:
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME,INSTANCE_CONNECTION_NAME_2,...
Habilitar un puerto TCP
Para habilitar un puerto TCP local, agregue uno de los siguientes al archivoapp.yaml
de su proyecto, dependiendo de si se está conectando a una o varias instancias: beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME=tcp:PORT
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME_1=tcp:PORT_1,INSTANCE_CONNECTION_NAME_2=tcp:PORT_2,...
IP privada
Para conectarte a tu instancia de Cloud SQL mediante una IP privada, la implementación de tu entorno flexible de App Engine debe estar en la misma red de VPC que tu instancia de Cloud SQL. Consulta la documentación de configuración en Ajustes de red para obtener instrucciones sobre cómo especificar una red de VPC para tu implementación.
Una vez implementada, su aplicación podrá conectarse directamente utilizando la dirección IP privada de su instancia y el puerto 5432
.
Conectarse a Cloud SQL
Después de configurar el entorno flexible de App Engine, puedes conectarte a tu instancia de Cloud SQL.
IP pública (predeterminada)
Para las rutas de IP públicas, el entorno flexible de App Engine proporciona cifrado y se conecta mediante el proxy de autenticación de Cloud SQL de tres maneras:
- A través de sockets TCP
- A través de sockets Unix
- Mediante el uso de un conector de Cloud SQL
IP privada
Conectarse con TCP
Conéctese utilizando la dirección IP privada de su instancia de Cloud SQL como host y el puerto 5432
.
Pitón
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Java
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Nota:
- CLOUD_SQL_CONNECTION_NAME debe representarse como <MI-PROYECTO>:<REGIÓN-DE-INSTANCIA>:<NOMBRE-DE-INSTANCIA>
- El uso del argumento ipTypes=PRIVATE obligará a SocketFactory a conectarse con la IP privada asociada a una instancia
- Consulte los requisitos de la versión de fábrica del socket JDBC para el archivo pom.xml aquí .
Node.js
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Ir
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
DO#
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Rubí
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
PHP
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Mejores prácticas y otra información
Puedes usar el proxy de autenticación de Cloud SQL al probar tu aplicación localmente. Consulta la guía de inicio rápido para usar el proxy de autenticación de Cloud SQL para obtener instrucciones detalladas.
Grupos de conexiones
Las conexiones a las bases de datos subyacentes pueden perderse, ya sea por el propio servidor de bases de datos o por la infraestructura subyacente. Para mitigar esto, recomendamos usar una biblioteca cliente compatible con grupos de conexiones y reconexión automática.
Límites de conexión
Cada instancia de App Engine que se ejecuta en un entorno estándar no puede tener más de 100 conexiones simultáneas . Para las aplicaciones PHP 5.5, el límite es de 60 conexiones simultáneas . Este límite se aplica por instancia de aplicación. Esto significa que cada instancia de la aplicación de App Engine puede tener esa cantidad de conexiones a la base de datos y, a medida que escala, el número total de conexiones por implementación puede aumentar. Para obtener más información, consulte Escalado de elementos .
Puede limitar el número máximo de conexiones por instancia mediante un grupo de conexiones. Para obtener ejemplos más detallados sobre cómo limitar el número de conexiones, consulte la página "Administrar conexiones de base de datos" .
Las aplicaciones de App Engine están sujetas a límites de tiempo de solicitud según el uso y el entorno. Para obtener más información, consulte cómo se administran las instancias en los entornos estándar y flexibles de App Engine.
Límites de cuota de API
App Engine proporciona un mecanismo que se conecta mediante el proxy de autenticación de Cloud SQL, que utiliza la API de administración de Cloud SQL. Los límites de cuota de la API se aplican al proxy de autenticación de Cloud SQL. Al iniciarse la API de administración de Cloud SQL, utiliza una cuota de dos y, posteriormente, un promedio de dos por hora. La cuota predeterminada es de 180 por minuto por usuario. Las aplicaciones de App Engine también están sujetas a cuotas y límites adicionales, como se explica en la página Cuotas de App Engine .
,Esta página contiene información y ejemplos para conectarse a una instancia de Cloud SQL desde un servicio que se ejecuta en un entorno flexible de App Engine.
Cloud SQL es un servicio de base de datos completamente administrado que le ayuda a configurar, mantener, administrar y gestionar sus bases de datos relacionales en la nube.
App Engine es una plataforma sin servidor y totalmente administrada para desarrollar y alojar aplicaciones web a gran escala. Puedes elegir entre varios lenguajes, bibliotecas y frameworks populares para desarrollar tus aplicaciones y dejar que App Engine se encargue del aprovisionamiento de servidores y del escalado de las instancias de tus aplicaciones según la demanda.
Configurar una instancia de Cloud SQL
- Habilite la API de administración de Cloud SQL en el Google Cloud proyecto desde el que te estás conectando, si aún no lo has hecho:
- Cree una instancia de Cloud SQL para PostgreSQL . Le recomendamos que elija una ubicación de instancia de Cloud SQL en la misma región que su servicio Cloud Run para mejorar la latencia, evitar costos de red y reducir el riesgo de fallos entre regiones.
De forma predeterminada, Cloud SQL asigna una dirección IP pública a cada nueva instancia. También puede asignar una dirección IP privada. Para obtener más información sobre las opciones de conectividad para ambas instancias, consulte la página "Resumen de la conexión" .
Configurar el entorno flexible de App Engine
Los pasos para configurar el entorno flexible de App Engine dependen del tipo de dirección IP que haya asignado a su instancia de Cloud SQL.IP pública (predeterminada)
Para configurar el entorno flexible de App Engine para habilitar conexiones a una instancia de Cloud SQL:
- Asegúrese de que la instancia tenga una dirección IP pública. Puede verificarlo en la página Descripción general de su instancia en Google Cloud consola . Si necesita agregar una, consulte la página "Configuración de IP pública" para obtener instrucciones.
- Obtenga el INSTANCE_CONNECTION_NAME de su instancia. Puede encontrar este valor en la página de descripción general de su instancia en Google Cloud consola o ejecutando el siguiente comando
gcloud sql instances describe
: Reemplace INSTANCE_NAME con el nombre de su instancia de Cloud SQL.gcloud sql instances describe INSTANCE_NAME
Asegúrese de que la cuenta de servicio que utiliza su aplicación para autenticar llamadas a Cloud SQL tenga el rol de IAM
Cloud SQL Client
.Para obtener instrucciones detalladas sobre cómo agregar roles de IAM a una cuenta de servicio, consulte Otorgar roles a cuentas de servicio .
De forma predeterminada, tu aplicación autorizará tus conexiones mediante la cuenta de servicio del entorno flexible de App Engine . La cuenta de servicio tiene el formato PROJECT_ID @appspot.gserviceaccount.com
.
Si la cuenta de servicio autorizadora pertenece a un proyecto diferente al de la instancia de Cloud SQL, será necesario agregar los permisos de IAM y de la API de administración de Cloud SQL para ambos proyectos.
app.yaml
de tu proyecto con la opción que mejor se adapte a tus necesidades. Puedes usar una lista de instancias separadas por comas para especificar varias opciones a la vez.Habilitación de un socket de dominio Unix
Para habilitar un socket de dominio Unix, agregue uno de los siguientes al archivo app.yaml
de su proyecto, dependiendo de si se está conectando a una o varias instancias:
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME,INSTANCE_CONNECTION_NAME_2,...
Habilitar un puerto TCP
Para habilitar un puerto TCP local, agregue uno de los siguientes al archivoapp.yaml
de su proyecto, dependiendo de si se está conectando a una o varias instancias: beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME=tcp:PORT
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME_1=tcp:PORT_1,INSTANCE_CONNECTION_NAME_2=tcp:PORT_2,...
IP privada
Para conectarte a tu instancia de Cloud SQL mediante una IP privada, la implementación de tu entorno flexible de App Engine debe estar en la misma red de VPC que tu instancia de Cloud SQL. Consulta la documentación de configuración en Ajustes de red para obtener instrucciones sobre cómo especificar una red de VPC para tu implementación.
Una vez implementada, su aplicación podrá conectarse directamente utilizando la dirección IP privada de su instancia y el puerto 5432
.
Conectarse a Cloud SQL
Después de configurar el entorno flexible de App Engine, puedes conectarte a tu instancia de Cloud SQL.
IP pública (predeterminada)
Para las rutas de IP públicas, el entorno flexible de App Engine proporciona cifrado y se conecta mediante el proxy de autenticación de Cloud SQL de tres maneras:
- A través de sockets TCP
- A través de sockets Unix
- Mediante el uso de un conector de Cloud SQL
IP privada
Conectarse con TCP
Conéctese utilizando la dirección IP privada de su instancia de Cloud SQL como host y el puerto 5432
.
Pitón
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Java
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Nota:
- CLOUD_SQL_CONNECTION_NAME debe representarse como <MI-PROYECTO>:<REGIÓN-DE-INSTANCIA>:<NOMBRE-DE-INSTANCIA>
- El uso del argumento ipTypes=PRIVATE obligará a SocketFactory a conectarse con la IP privada asociada a una instancia
- Consulte los requisitos de la versión de fábrica del socket JDBC para el archivo pom.xml aquí .
Node.js
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Ir
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
DO#
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Rubí
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
PHP
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Mejores prácticas y otra información
Puedes usar el proxy de autenticación de Cloud SQL al probar tu aplicación localmente. Consulta la guía de inicio rápido para usar el proxy de autenticación de Cloud SQL para obtener instrucciones detalladas.
Grupos de conexiones
Las conexiones a las bases de datos subyacentes pueden perderse, ya sea por el propio servidor de bases de datos o por la infraestructura subyacente. Para mitigar esto, recomendamos usar una biblioteca cliente compatible con grupos de conexiones y reconexión automática.
Límites de conexión
Cada instancia de App Engine que se ejecuta en un entorno estándar no puede tener más de 100 conexiones simultáneas . Para las aplicaciones PHP 5.5, el límite es de 60 conexiones simultáneas . Este límite se aplica por instancia de aplicación. Esto significa que cada instancia de la aplicación de App Engine puede tener esa cantidad de conexiones a la base de datos y, a medida que escala, el número total de conexiones por implementación puede aumentar. Para obtener más información, consulte Escalado de elementos .
Puede limitar el número máximo de conexiones por instancia mediante un grupo de conexiones. Para obtener ejemplos más detallados sobre cómo limitar el número de conexiones, consulte la página "Administrar conexiones de base de datos" .
Las aplicaciones de App Engine están sujetas a límites de tiempo de solicitud según el uso y el entorno. Para obtener más información, consulte cómo se administran las instancias en los entornos estándar y flexibles de App Engine.
Límites de cuota de API
App Engine proporciona un mecanismo que se conecta mediante el proxy de autenticación de Cloud SQL, que utiliza la API de administración de Cloud SQL. Los límites de cuota de la API se aplican al proxy de autenticación de Cloud SQL. Al iniciarse la API de administración de Cloud SQL, utiliza una cuota de dos y, posteriormente, un promedio de dos por hora. La cuota predeterminada es de 180 por minuto por usuario. Las aplicaciones de App Engine también están sujetas a cuotas y límites adicionales, como se explica en la página Cuotas de App Engine .
,Esta página contiene información y ejemplos para conectarse a una instancia de Cloud SQL desde un servicio que se ejecuta en un entorno flexible de App Engine.
Cloud SQL es un servicio de base de datos completamente administrado que le ayuda a configurar, mantener, administrar y gestionar sus bases de datos relacionales en la nube.
App Engine es una plataforma sin servidor y totalmente administrada para desarrollar y alojar aplicaciones web a gran escala. Puedes elegir entre varios lenguajes, bibliotecas y frameworks populares para desarrollar tus aplicaciones y dejar que App Engine se encargue del aprovisionamiento de servidores y del escalado de las instancias de tus aplicaciones según la demanda.
Configurar una instancia de Cloud SQL
- Habilite la API de administración de Cloud SQL en el Google Cloud proyecto desde el que te estás conectando, si aún no lo has hecho:
- Cree una instancia de Cloud SQL para PostgreSQL . Le recomendamos que elija una ubicación de instancia de Cloud SQL en la misma región que su servicio Cloud Run para mejorar la latencia, evitar costos de red y reducir el riesgo de fallos entre regiones.
De forma predeterminada, Cloud SQL asigna una dirección IP pública a cada nueva instancia. También puede asignar una dirección IP privada. Para obtener más información sobre las opciones de conectividad para ambas instancias, consulte la página "Resumen de la conexión" .
Configurar el entorno flexible de App Engine
Los pasos para configurar el entorno flexible de App Engine dependen del tipo de dirección IP que haya asignado a su instancia de Cloud SQL.IP pública (predeterminada)
Para configurar el entorno flexible de App Engine para habilitar conexiones a una instancia de Cloud SQL:
- Asegúrese de que la instancia tenga una dirección IP pública. Puede verificarlo en la página Descripción general de su instancia en Google Cloud consola . Si necesita agregar una, consulte la página "Configuración de IP pública" para obtener instrucciones.
- Obtenga el INSTANCE_CONNECTION_NAME de su instancia. Puede encontrar este valor en la página de descripción general de su instancia en Google Cloud consola o ejecutando el siguiente comando
gcloud sql instances describe
: Reemplace INSTANCE_NAME con el nombre de su instancia de Cloud SQL.gcloud sql instances describe INSTANCE_NAME
Asegúrese de que la cuenta de servicio que utiliza su aplicación para autenticar llamadas a Cloud SQL tenga el rol de IAM
Cloud SQL Client
.Para obtener instrucciones detalladas sobre cómo agregar roles de IAM a una cuenta de servicio, consulte Otorgar roles a cuentas de servicio .
De forma predeterminada, tu aplicación autorizará tus conexiones mediante la cuenta de servicio del entorno flexible de App Engine . La cuenta de servicio tiene el formato PROJECT_ID @appspot.gserviceaccount.com
.
Si la cuenta de servicio autorizadora pertenece a un proyecto diferente al de la instancia de Cloud SQL, será necesario agregar los permisos de IAM y de la API de administración de Cloud SQL para ambos proyectos.
app.yaml
de tu proyecto con la opción que mejor se adapte a tus necesidades. Puedes usar una lista de instancias separadas por comas para especificar varias opciones a la vez.Habilitación de un socket de dominio Unix
Para habilitar un socket de dominio Unix, agregue uno de los siguientes al archivo app.yaml
de su proyecto, dependiendo de si se está conectando a una o varias instancias:
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME,INSTANCE_CONNECTION_NAME_2,...
Habilitar un puerto TCP
Para habilitar un puerto TCP local, agregue uno de los siguientes al archivoapp.yaml
de su proyecto, dependiendo de si se está conectando a una o varias instancias: beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME=tcp:PORT
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME_1=tcp:PORT_1,INSTANCE_CONNECTION_NAME_2=tcp:PORT_2,...
IP privada
Para conectarte a tu instancia de Cloud SQL mediante una IP privada, la implementación de tu entorno flexible de App Engine debe estar en la misma red de VPC que tu instancia de Cloud SQL. Consulta la documentación de configuración en Ajustes de red para obtener instrucciones sobre cómo especificar una red de VPC para tu implementación.
Una vez implementada, su aplicación podrá conectarse directamente utilizando la dirección IP privada de su instancia y el puerto 5432
.
Conectarse a Cloud SQL
Después de configurar el entorno flexible de App Engine, puedes conectarte a tu instancia de Cloud SQL.
IP pública (predeterminada)
Para las rutas de IP públicas, el entorno flexible de App Engine proporciona cifrado y se conecta mediante el proxy de autenticación de Cloud SQL de tres maneras:
- A través de sockets TCP
- A través de sockets Unix
- Mediante el uso de un conector de Cloud SQL
IP privada
Conectarse con TCP
Conéctese utilizando la dirección IP privada de su instancia de Cloud SQL como host y el puerto 5432
.
Pitón
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Java
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Nota:
- CLOUD_SQL_CONNECTION_NAME debe representarse como <MI-PROYECTO>:<REGIÓN-DE-INSTANCIA>:<NOMBRE-DE-INSTANCIA>
- El uso del argumento ipTypes=PRIVATE obligará a SocketFactory a conectarse con la IP privada asociada a una instancia
- Consulte los requisitos de la versión de fábrica del socket JDBC para el archivo pom.xml aquí .
Node.js
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Ir
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
DO#
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Rubí
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
PHP
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Mejores prácticas y otra información
Puedes usar el proxy de autenticación de Cloud SQL al probar tu aplicación localmente. Consulta la guía de inicio rápido para usar el proxy de autenticación de Cloud SQL para obtener instrucciones detalladas.
Grupos de conexiones
Las conexiones a las bases de datos subyacentes pueden perderse, ya sea por el propio servidor de bases de datos o por la infraestructura subyacente. Para mitigar esto, recomendamos usar una biblioteca cliente compatible con grupos de conexiones y reconexión automática.
Límites de conexión
Cada instancia de App Engine que se ejecuta en un entorno estándar no puede tener más de 100 conexiones simultáneas . Para las aplicaciones PHP 5.5, el límite es de 60 conexiones simultáneas . Este límite se aplica por instancia de aplicación. Esto significa que cada instancia de la aplicación de App Engine puede tener esa cantidad de conexiones a la base de datos y, a medida que escala, el número total de conexiones por implementación puede aumentar. Para obtener más información, consulte Escalado de elementos .
Puede limitar el número máximo de conexiones por instancia mediante un grupo de conexiones. Para obtener ejemplos más detallados sobre cómo limitar el número de conexiones, consulte la página "Administrar conexiones de base de datos" .
Las aplicaciones de App Engine están sujetas a límites de tiempo de solicitud según el uso y el entorno. Para obtener más información, consulte cómo se administran las instancias en los entornos estándar y flexibles de App Engine.
Límites de cuota de API
App Engine proporciona un mecanismo que se conecta mediante el proxy de autenticación de Cloud SQL, que utiliza la API de administración de Cloud SQL. Los límites de cuota de la API se aplican al proxy de autenticación de Cloud SQL. Al iniciarse la API de administración de Cloud SQL, utiliza una cuota de dos y, posteriormente, un promedio de dos por hora. La cuota predeterminada es de 180 por minuto por usuario. Las aplicaciones de App Engine también están sujetas a cuotas y límites adicionales, como se explica en la página Cuotas de App Engine .
,Esta página contiene información y ejemplos para conectarse a una instancia de Cloud SQL desde un servicio que se ejecuta en un entorno flexible de App Engine.
Cloud SQL es un servicio de base de datos completamente administrado que le ayuda a configurar, mantener, administrar y gestionar sus bases de datos relacionales en la nube.
App Engine es una plataforma sin servidor y totalmente administrada para desarrollar y alojar aplicaciones web a gran escala. Puedes elegir entre varios lenguajes, bibliotecas y frameworks populares para desarrollar tus aplicaciones y dejar que App Engine se encargue del aprovisionamiento de servidores y del escalado de las instancias de tus aplicaciones según la demanda.
Configurar una instancia de Cloud SQL
- Habilite la API de administración de Cloud SQL en el Google Cloud proyecto desde el que te estás conectando, si aún no lo has hecho:
- Cree una instancia de Cloud SQL para PostgreSQL . Le recomendamos que elija una ubicación de instancia de Cloud SQL en la misma región que su servicio Cloud Run para mejorar la latencia, evitar costos de red y reducir el riesgo de fallos entre regiones.
De forma predeterminada, Cloud SQL asigna una dirección IP pública a cada nueva instancia. También puede asignar una dirección IP privada. Para obtener más información sobre las opciones de conectividad para ambas instancias, consulte la página "Resumen de la conexión" .
Configurar el entorno flexible de App Engine
Los pasos para configurar el entorno flexible de App Engine dependen del tipo de dirección IP que haya asignado a su instancia de Cloud SQL.IP pública (predeterminada)
Para configurar el entorno flexible de App Engine para habilitar conexiones a una instancia de Cloud SQL:
- Asegúrese de que la instancia tenga una dirección IP pública. Puede verificarlo en la página Descripción general de su instancia en Google Cloud consola . Si necesita agregar una, consulte la página "Configuración de IP pública" para obtener instrucciones.
- Obtenga el INSTANCE_CONNECTION_NAME de su instancia. Puede encontrar este valor en la página de descripción general de su instancia en Google Cloud consola o ejecutando el siguiente comando
gcloud sql instances describe
: Reemplace INSTANCE_NAME con el nombre de su instancia de Cloud SQL.gcloud sql instances describe INSTANCE_NAME
Asegúrese de que la cuenta de servicio que utiliza su aplicación para autenticar llamadas a Cloud SQL tenga el rol de IAM
Cloud SQL Client
.Para obtener instrucciones detalladas sobre cómo agregar roles de IAM a una cuenta de servicio, consulte Otorgar roles a cuentas de servicio .
De forma predeterminada, tu aplicación autorizará tus conexiones mediante la cuenta de servicio del entorno flexible de App Engine . La cuenta de servicio tiene el formato PROJECT_ID @appspot.gserviceaccount.com
.
Si la cuenta de servicio autorizadora pertenece a un proyecto diferente al de la instancia de Cloud SQL, será necesario agregar los permisos de IAM y de la API de administración de Cloud SQL para ambos proyectos.
app.yaml
de tu proyecto con la opción que mejor se adapte a tus necesidades. Puedes usar una lista de instancias separadas por comas para especificar varias opciones a la vez.Habilitación de un socket de dominio Unix
Para habilitar un socket de dominio Unix, agregue uno de los siguientes al archivo app.yaml
de su proyecto, dependiendo de si se está conectando a una o varias instancias:
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME,INSTANCE_CONNECTION_NAME_2,...
Habilitar un puerto TCP
Para habilitar un puerto TCP local, agregue uno de los siguientes al archivoapp.yaml
de su proyecto, dependiendo de si se está conectando a una o varias instancias: beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME=tcp:PORT
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME_1=tcp:PORT_1,INSTANCE_CONNECTION_NAME_2=tcp:PORT_2,...
IP privada
Para conectarte a tu instancia de Cloud SQL mediante una IP privada, la implementación de tu entorno flexible de App Engine debe estar en la misma red de VPC que tu instancia de Cloud SQL. Consulta la documentación de configuración en Ajustes de red para obtener instrucciones sobre cómo especificar una red de VPC para tu implementación.
Una vez implementada, su aplicación podrá conectarse directamente utilizando la dirección IP privada de su instancia y el puerto 5432
.
Conectarse a Cloud SQL
Después de configurar el entorno flexible de App Engine, puedes conectarte a tu instancia de Cloud SQL.
IP pública (predeterminada)
Para las rutas de IP públicas, el entorno flexible de App Engine proporciona cifrado y se conecta mediante el proxy de autenticación de Cloud SQL de tres maneras:
- A través de sockets TCP
- A través de sockets Unix
- Mediante el uso de un conector de Cloud SQL
IP privada
Conectarse con TCP
Conéctese utilizando la dirección IP privada de su instancia de Cloud SQL como host y el puerto 5432
.
Pitón
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Java
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Nota:
- CLOUD_SQL_CONNECTION_NAME debe representarse como <MI-PROYECTO>:<REGIÓN-DE-INSTANCIA>:<NOMBRE-DE-INSTANCIA>
- El uso del argumento ipTypes=PRIVATE obligará a SocketFactory a conectarse con la IP privada asociada a una instancia
- Consulte los requisitos de la versión de fábrica del socket JDBC para el archivo pom.xml aquí .
Node.js
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Ir
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
DO#
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Rubí
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
PHP
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Mejores prácticas y otra información
Puedes usar el proxy de autenticación de Cloud SQL al probar tu aplicación localmente. Consulta la guía de inicio rápido para usar el proxy de autenticación de Cloud SQL para obtener instrucciones detalladas.
Grupos de conexiones
Las conexiones a las bases de datos subyacentes pueden perderse, ya sea por el propio servidor de bases de datos o por la infraestructura subyacente. Para mitigar esto, recomendamos usar una biblioteca cliente compatible con grupos de conexiones y reconexión automática.
Límites de conexión
Cada instancia de App Engine que se ejecuta en un entorno estándar no puede tener más de 100 conexiones simultáneas . Para las aplicaciones PHP 5.5, el límite es de 60 conexiones simultáneas . Este límite se aplica por instancia de aplicación. Esto significa que cada instancia de la aplicación de App Engine puede tener esa cantidad de conexiones a la base de datos y, a medida que escala, el número total de conexiones por implementación puede aumentar. Para obtener más información, consulte Escalado de elementos .
Puede limitar el número máximo de conexiones por instancia mediante un grupo de conexiones. Para obtener ejemplos más detallados sobre cómo limitar el número de conexiones, consulte la página "Administrar conexiones de base de datos" .
Las aplicaciones de App Engine están sujetas a límites de tiempo de solicitud según el uso y el entorno. Para obtener más información, consulte cómo se administran las instancias en los entornos estándar y flexibles de App Engine.
Límites de cuota de API
App Engine proporciona un mecanismo que se conecta mediante el proxy de autenticación de Cloud SQL, que utiliza la API de administración de Cloud SQL. Los límites de cuota de la API se aplican al proxy de autenticación de Cloud SQL. Al iniciarse la API de administración de Cloud SQL, utiliza una cuota de dos y, posteriormente, un promedio de dos por hora. La cuota predeterminada es de 180 por minuto por usuario. Las aplicaciones de App Engine también están sujetas a cuotas y límites adicionales, como se explica en la página Cuotas de App Engine .