从 Google Cloud 上的 Cloud Run 访问 Cloud SQL

pet*_*ete 5 google-cloud-sql google-cloud-platform google-cloud-run

我有一个 Cloud Run 服务,可以通过SQLAlchemy. 但是,在 Cloud Run 的日志中,我看到CloudSQL connection failed. Please see https://cloud.google.com/sql/docs/mysql/connect-run for additional details: ensure that the account has access to "<connection_string>". 转到该链接,它说:

“默认情况下,您的应用将使用 Cloud Run(完全托管)服务帐户授权您的连接。服务帐户的格式为 PROJECT_NUMBER-compute@developer.gserviceaccount.com。”

但是,以下内容(https://cloud.google.com/run/docs/securing/service-identity)表示:

“默认情况下,Cloud Run 修订版使用 Compute Engine 默认服务帐户 (PROJECT_NUMBER-compute@developer.gserviceaccount.com),该帐户具有项目 > 编辑器 IAM 角色。这意味着默认情况下,您的 Cloud Run 修订版具有读取和写入功能访问您的 Google Cloud 项目中的所有资源。”

那么这是否意味着 Cloud Run 已经可以访问 SQL 了?我已在 Cloud Run 部署页面中设置了 Cloud SQL 连接。您建议我做什么才能允许从 Cloud Run 访问 Cloud SQL?

编辑:我必须启用 Cloud SQL API。

Ahm*_*gle 8

不可以,Cloud Run 默认情况下无法访问 Cloud SQL。您需要遵循两条路径之一。

  1. 使用本地 unix 套接字文件连接到 SQL:您需要像您所说的那样配置权限,并使用指示连接到数据库的意图的标志进行部署。关注https://cloud.google.com/sql/docs/mysql/connect-run

  2. 使用私有 IP 连接到 SQL:这涉及将 Cloud SQL 实例部署到 VPC 网络中,从而使其获得私有 IP 地址。然后,您使用 Cloud Run VPC Access Connector(当前为测试版)来允许 Cloud Run 容器连接到该 VPC 网络,其中直接包含 SQL 数据库的 IP 地址(无需 IAM 权限)。关注https://cloud.google.com/vpc/docs/configure-serverless-vpc-access