我有一个Cloud Run服务,可通过访问Cloud SQL实例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(完全托管)服务帐户授权连接。该服务帐户的格式为[email protected]。”
但是,以下内容(https://cloud.google.com/run/docs/securing/service-identity)表示:
“默认情况下,Cloud Run修订版使用Compute Engine默认服务帐户([email protected]),该帐户具有“项目”>“编辑器” IAM角色。这意味着,默认情况下,您的Cloud Run修订版已读写访问您的Google Cloud项目中的所有资源。”
难道这不意味着Cloud Run已经可以访问SQL吗?我已经在Cloud Run部署页面中设置了Cloud SQL连接。您建议我怎么做才能允许从Cloud Run访问Cloud SQL?
编辑:我必须启用Cloud SQL API。
否,默认情况下,Cloud Run无法访问Cloud SQL。您需要遵循以下两条路径之一。
使用本地unix套接字文件连接到SQL:您需要像上述配置权限,并使用指示连接数据库的标志进行部署。遵循https://cloud.google.com/sql/docs/mysql/connect-run
使用私有IP连接到SQL:这涉及将Cloud SQL实例部署到VPC网络中,并因此获得私有IP地址。然后,您可以使用Cloud Run VPC访问连接器(当前为beta)来使Cloud Run容器能够连接到该VPC网络,该网络直接包含SQL数据库的IP地址(不需要IAM权限)。遵循https://cloud.google.com/vpc/docs/configure-serverless-vpc-access
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句