google-cloud-platform - 从 Google Cloud 上的 Cloud Run 访问 Cloud SQL

标签 google-cloud-platform google-cloud-sql google-cloud-run

我有一个 Cloud Run 服务,它通过 SQLAlchemy 访问 Cloud SQL 实例.但是,在 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),该帐户具有 Project > Editor IAM 角色。这意味着默认情况下,您的 Cloud Run 修订具有对您的 Google Cloud 项目中所有资源的读写权限。”

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

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

最佳答案

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

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

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

关于google-cloud-platform - 从 Google Cloud 上的 Cloud Run 访问 Cloud SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62916747/

相关文章:

google-cloud-platform - 请求中的资源字段值无效

google-cloud-sql - Prisma DATABASE_URL 错误(Cloud Run + Cloud SQL)

node.js - 如何使用 NodeJS 在 firebase 模拟器中模拟身份验证 Multi-Tenancy ?

python - Pyinstaller 抛出 "Import Error:requests> 2.18.0 is required by the google.resumable media.requests subpackage."

python - 使用python从云存储桶下载文件时如何显示进度条

mysql - 如何在生产环境中从 Google Compute Engine 连接到 Google Cloud SQL?

mysql - 表中绝对没有数据时违反主键

postgresql - pg_stat_statements_reset() 权限在 Google Cloud SQL PostgreSQL 上被拒绝

docker - gcloud 模拟器迅速填满所有 Docker 磁盘空间

firebase - 在本地托管的 Firebase 应用程序中使用本地模拟的 https.onCall Firebase 函数