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

基于NextJS/Prisma从Cloud Run连接Cloud SQL失败问题排查

背景信息

我正在使用谷歌云服务开发NextJS 14应用,采用Prisma作为ORM,通过DATABASE_URL(postgresql://postgres:password*^@IPaddress/dbname?schema=public")连接数据库。

我的配置详情:

  • 启用了名为default的VPC网络,采用基础配置。
  • PostgreSQL实例同时启用私有IP和公有IP,私有IP已接入上述default VPC。[PostgreSQL实例网络标签页截图]
  • Cloud Run实例采用基础配置,已通过下拉菜单关联目标SQL实例,完成Cloud SQL连接设置。
  • 已在DATABASE_URL环境变量中配置数据库的私有IP(Prisma要求使用该IP)。[Cloud Run网络配置截图]
  • 触发器YAML配置如下:由于NextJS构建过程依赖相关环境变量,我在此处传入了所有.env变量,同时添加了--vpc-connector=default参数:
steps:
  - name: gcr.io/cloud-builders/docker
    args:
      - build
      - '--no-cache'
      - '-t'
      - >-
        $_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA
      - .
      - '-f'
      - Dockerfile
      - '--build-arg'
      - NEXT_PUBLIC_URL=$_NEXT_PUBLIC_URL
      - '--build-arg'
      - DATABASE_URL=$_DATABASE_URL
      - '--build-arg'
      - RESEND_API_KEY=$_RESEND_API_KEY
      - '--build-arg'
      - JWT_SECRET_KEY=$_JWT_SECRET_KEY
      - '--build-arg'
      - GOOGLE_PROJECT_ID=$_GOOGLE_PROJECT_ID
      - '--build-arg'
      - BUCKET_NAME=$_BUCKET_NAME
      - '--build-arg'
      - GOOGLE_API_KEY=$_GOOGLE_API_KEY
      - '--build-arg'
      - GOOGLE_CLIENT_EMAIL=$_GOOGLE_CLIENT_EMAIL
      - '--build-arg'
      - NEXT_PUBLIC_RECAPTCHA_SITE_KEY=$_NEXT_PUBLIC_RECAPTCHA_SITE_KEY
      - '--build-arg'
      - RECAPTCHA_SECRET_KEY=$_RECAPTCHA_SECRET_KEY
      - '--build-arg'
      - GOOGLE_DB_INSTANCE=$_GOOGLE_DB_INSTANCE
      - '--build-arg'
      - GOOGLE_DB_PASSWORD=$_GOOGLE_DB_PASSWORD
      - '--build-arg'
      - GOOGLE_DB_CONNECTION_NAME=$_GOOGLE_DB_CONNECTION_NAME
      - '--build-arg'
      - GOOGLE_DB_NAME=$_GOOGLE_DB_NAME
      - '--build-arg'
      - GOOGLE_DB_USERNAME=$_GOOGLE_DB_USERNAME
    id: Build
  - name: gcr.io/cloud-builders/docker
    args:
      - push
      - >-
        $_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA
    id: Push
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:slim'
    args:
      - run
      - services
      - update
      - $_SERVICE_NAME
      - '--platform=managed'
      - >-
        --image=$_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA
      - >-
        --labels=managed-by=gcp-cloud-build-deploy-cloud-run,commit-sha=$COMMIT_SHA,gcb-build-id=$BUILD_ID,gcb-trigger-id=$_TRIGGER_ID
      - '--region=$_DEPLOY_REGION'
      - '--vpc-connector=default'
      - '--quiet'
    id: Deploy
    entrypoint: gcloud
images:
  - >-
    $_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA
options:
  substitutionOption: ALLOW_LOOSE
  logging: CLOUD_LOGGING_ONLY
substitutions:
  _AR_HOSTNAME: southamerica-west1-docker.pkg.dev
  _PLATFORM: managed
  _SERVICE_NAME: ******
  _TRIGGER_ID: ******
  REPO_NAME: ******
  _DEPLOY_REGION: southamerica-west1
tags:
  - gcp-cloud-build-deploy-cloud-run
  - gcp-cloud-build-deploy-cloud-run-managed
  - ******
问题描述

我遇到数据库连接失败的错误:Can't reach database server at 172.18.160.4:5432,该地址是数据库的私有IP,应用部署在Cloud Run中。[日志截图]

内容的提问来源于stack exchange,提问作者Jose Francisco Chavez Carreon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:04:55