You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

第二代Google Cloud Function跨项目连接MySQL失败求助

第二代Google Cloud Function跨项目连接Cloud SQL失败问题
  • 第一代Cloud Function(移除--gen2参数部署)可正常跨项目连接Cloud SQL,数据库所在项目已为部署命令指定的服务账号配置Cloud Sql Client角色。
  • 部署第二代Cloud Function时,无法连接其他项目的数据库。第二代函数基于Cloud Run运行,已确认Cloud Run使用的服务账号(无论是命令指定的还是默认服务账号)都在数据库项目的IAM中配置了Cloud Sql Client角色,但仍抛出错误:

SQLSTATE[HY000] [2002] No such file or directory

部署命令

gcloud functions deploy $CLOUD_FUNCTION_NAME-staging-gen2
      --gen2
      --source=./src
      --runtime=$CLOUD_FUNCTION_PHP_VERSION
      --trigger-http
      --entry-point=$CLOUD_FUNCTION_ENTRY_POINT
      --allow-unauthenticated
      --region=$GCP_ZONE
      --project=$PROJECT_ID
      --env-vars-file .env.yml
      --min-instances=$MINIMUM_NUMBER_OF_INSTANCES
      --service-account=*******@appspot.gserviceaccount.com
      ${VPC_CONNECTOR:+--vpc-connector projects/$PROJECT_ID/locations/$GCP_ZONE/connectors/$VPC_CONNECTOR}

已尝试的操作

  • 取消指定--service-account参数,使用默认服务账号,并在数据库项目的IAM中为该默认账号添加Cloud Sql Client角色,问题未解决。

数据库连接字符串

使用Unix Socket连接,PHP PDO连接字符串如下:

"mysql:dbname=${dbname};port=${port};unix_socket=/cloudsql/${instanceConnectionName}"

其中instanceConnectionName格式为项目ID:区域:数据库实例名(示例:project_name:europe-west4:database_name)

内容的提问来源于stack exchange,提问作者Orest Divintari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:50:24