这个问题是在 Cloud Run 达到 GA(通用可用性)的几个月前提出的。
Cloud Run(全托管)现在支持使用数据库的公共 IP 地址连接到 Cloud SQL 实例(MySQL 和 PostgreSQL)。
gcloud run services update run-mysql \
--add-cloudsql-instances [INSTANCE_CONNECTION_NAME] \
--set-env-vars CLOUD_SQL_CONNECTION_NAME=[INSTANCE_CONNECTION_NAME],\
DB_NAME=[MY_DB],DB_USER=[MY_DB_USER],DB_PASS=[MY_DB_PASS]
...whereINSTANCE_CONNECTION_NAME
的格式为(由Cloud Console 中 Cloud SQL 实例的“概览”部分PROJECT_ID:REGION:INSTANCE_ID
返回或提供)。gcloud sql instances describe <INSTANCE-ID> | grep connectionName
请注意,Cloud Run 用于授权您连接到 Cloud SQL 的服务帐号必须具有正确的 IAM 权限,如果数据库实例和 Cloud Run 服务不属于同一项目,则需要进行一些配置。
以上内容负责 Cloud Run 和 Cloud SQL 之间的连接。让您的应用程序实际与 Cloud SQL 实例对话需要使用位于 的 Unix 域套接字从您的 Cloud Run 服务进行/cloudsql/INSTANCE_CONNECTION_NAME
连接(顺便说一句,这些连接会自动加密)。
不同的语言和不同的数据库驱动程序将使用不同的方式连接到 Cloud SQL 实例。这个链接有更多细节。
另请参阅如何从 Cloud Run 安全地连接到 Cloud SQL?