This page contains information and examples for connecting to a Cloud SQL instance from a service running in Cloud Run (fully managed).
Cloud SQL is a fully-managed database service that helps you set up, maintain, manage, and administer your relational databases in the cloud.
Setting up a Cloud SQL instance
- Enable the Cloud SQL Admin API in the project you are connecting from, if you haven't already done so:
- Create a Cloud SQL for SQL Server instance.
By default, Cloud SQL assigns a public IP address to a new instance. Cloud Run (fully managed) does not support connecting to Cloud SQL for SQL Server over public IP. Use private IP instead. For more information, see Configuring private IP.
Configuring Cloud Run (fully managed)
The steps to configure Cloud Run (fully managed) depend on the type of IP address you assigned to your Cloud SQL instance.Public IP (default)
Cloud Run (fully managed) does not support connecting to Cloud SQL for SQL Server over public IP. Use private IP instead.
Private IP
A Serverless VPC Access connector handles communication to your VPC network. To connect directly with private IP, you need to:
- Make sure that the Cloud SQL instance created above has a private IP address. If you need to add one, see the Configuring private IP page for instructions.
- Create a Serverless VPC Access connector in the same VPC network as your Cloud SQL instance.
- Configure Cloud Run (fully managed) to use the connector.
- Connect using your instance's private IP and port
1433
.
Unless you're using Shared VPC, a connector must be in the same project and region as the resource that uses it, but the connector can send traffic to resources in different regions.
Serverless VPC Access supports communication to VPC networks connected via Cloud VPN and VPC Network Peering.
Serverless VPC Access does not support legacy networks.
Connecting to Cloud SQL
After you configure Cloud Run (fully managed), you can connect to your Cloud SQL instance.
Public IP (default)
Cloud Run (fully managed) does not support connecting to Cloud SQL for SQL Server over public IP. Use private IP instead.
For public IP paths, App Engine provides connections with encryption/authorization with the Cloud SQL Proxy
Private IP
For private IP paths, your application will connect directly to your instance through Serverless VPC Access.
Connecting with TCP
Connect directly using the private IP address and port 1433
for your
instance.
Python
To see this snippet in the context of a web application, view the README on GitHub.
Java
To see this snippet in the context of a web application, view the README on GitHub.
Node.js
To see this snippet in the context of a web application, view the README on GitHub.
Go
To see this snippet in the context of a web application, view the README on GitHub.
Ruby
To see this snippet in the context of a web application, view the README on GitHub.
PHP
To see this snippet in the context of a web application, view the README on GitHub.
Best practices and other information
You can use the Cloud SQL proxy when testing your application locally. See the quickstart for using the proxy for local testing for detailed instructions.
You can also test using the Cloud SQL Proxy via a docker container.
Connection Pools
Connections to underlying databases may be dropped, either by the database server itself, or by the platform infrastructure. We recommend using a client library that supports connection pools that automatically reconnect broken client connections. For more detailed examples on how to use connection pools, see the Managing database connections page.Connection Limits
Both the MySQL and PostgreSQL editions of Cloud SQL impose a maximum limit on concurrent connections, and these limits may vary depending on the database engine chosen (see the Cloud SQL Quotas and Limits page).Cloud Run (fully managed) services are limited to 100 connections to a Cloud SQL database. This limit applies per service instance. This means that each instance of the Cloud Run (fully managed) service can have 100 connections to the database, and as it scales the total number of connections per deployment can grow.
You can limit the maximum number of connections used per instance by using a connection pool. For more detailed examples on how to limit the number of connections, see the Managing database connections page.
API Quota Limits
Cloud Run (fully managed) provides a mechanism that connects using the Cloud SQL Proxy, which uses the Cloud SQL Admin API. API quota limits apply to the Cloud SQL Proxy. The Cloud SQL Admin API quota used is approximately 2 times the number of Cloud SQL instances configured by the number of Cloud Run instances of a particular service deployed at any one time. You can cap the number of Cloud Run instances to limit the expected API quota consumed.Next steps
- Learn more about Cloud Run.
- Learn more about building and deploying container images.