Google app engine 使用专用IP和无服务器VPC访问从App Engine到CloudSQL的连接问题

Google app engine 使用专用IP和无服务器VPC访问从App Engine到CloudSQL的连接问题,google-app-engine,google-cloud-platform,google-cloud-sql,serverless,google-vpc,Google App Engine,Google Cloud Platform,Google Cloud Sql,Serverless,Google Vpc,我正在做一个PoC,从googleappengine连接到CloudSQL实例,在SharedVPC上运行Private IP。测试的示例应用程序来自 我的无服务器VPC连接器范围如下 $ gcloud compute networks vpc-access connectors list --region=us-central1 CONNECTOR_ID REGION NETWORK IP_CIDR_RANGE MIN_THROUGHPU

我正在做一个PoC,从
googleappengine
连接到
CloudSQL实例
,在
SharedVPC
上运行
Private IP
。测试的示例应用程序来自

我的
无服务器VPC连接器范围如下

 $ gcloud compute networks vpc-access connectors list --region=us-central1
  CONNECTOR_ID       REGION       NETWORK          IP_CIDR_RANGE    MIN_THROUGHPUT  MAX_THROUGHPUT  STATE
  testserverlessvpc  us-central1  kube-shared-vpc  192.168.60.0/28  200             300             READY
     $ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
  NAME                 ADDRESS/RANGE     TYPE      PURPOSE      NETWORK           REGION  SUBNET  STATUS
 cloudsqltestrangenew  10.0.100.0/20    INTERNAL  VPC_PEERING  kube-shared-vpc                   RESERVED
$ gcloud sql instances list
 NAME       DATABASE_VERSION  LOCATION       TIER         PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
 mysql2           MYSQL_5_7         us-central1-b  db-f1-micro  -            10.0.100.5       RUNNABLE
 runtime: python37

 service: appcentralpri
 env_variables:
     CLOUD_SQL_CONNECTION_NAME: projectname:us-central1:mysql2
     DB_USER: guestdb
     DB_PASS: password
     DB_NAME: testdb
     DB_HOST: 10.0.100.5:3306

     vpc_access_connector:
     name: projects/hostproject-26a2/locations/us-central1/connectors/testserverlessvpc
专用IP范围
如下

 $ gcloud compute networks vpc-access connectors list --region=us-central1
  CONNECTOR_ID       REGION       NETWORK          IP_CIDR_RANGE    MIN_THROUGHPUT  MAX_THROUGHPUT  STATE
  testserverlessvpc  us-central1  kube-shared-vpc  192.168.60.0/28  200             300             READY
     $ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
  NAME                 ADDRESS/RANGE     TYPE      PURPOSE      NETWORK           REGION  SUBNET  STATUS
 cloudsqltestrangenew  10.0.100.0/20    INTERNAL  VPC_PEERING  kube-shared-vpc                   RESERVED
$ gcloud sql instances list
 NAME       DATABASE_VERSION  LOCATION       TIER         PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
 mysql2           MYSQL_5_7         us-central1-b  db-f1-micro  -            10.0.100.5       RUNNABLE
 runtime: python37

 service: appcentralpri
 env_variables:
     CLOUD_SQL_CONNECTION_NAME: projectname:us-central1:mysql2
     DB_USER: guestdb
     DB_PASS: password
     DB_NAME: testdb
     DB_HOST: 10.0.100.5:3306

     vpc_access_connector:
     name: projects/hostproject-26a2/locations/us-central1/connectors/testserverlessvpc
MySQL
实例如下

 $ gcloud compute networks vpc-access connectors list --region=us-central1
  CONNECTOR_ID       REGION       NETWORK          IP_CIDR_RANGE    MIN_THROUGHPUT  MAX_THROUGHPUT  STATE
  testserverlessvpc  us-central1  kube-shared-vpc  192.168.60.0/28  200             300             READY
     $ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
  NAME                 ADDRESS/RANGE     TYPE      PURPOSE      NETWORK           REGION  SUBNET  STATUS
 cloudsqltestrangenew  10.0.100.0/20    INTERNAL  VPC_PEERING  kube-shared-vpc                   RESERVED
$ gcloud sql instances list
 NAME       DATABASE_VERSION  LOCATION       TIER         PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
 mysql2           MYSQL_5_7         us-central1-b  db-f1-micro  -            10.0.100.5       RUNNABLE
 runtime: python37

 service: appcentralpri
 env_variables:
     CLOUD_SQL_CONNECTION_NAME: projectname:us-central1:mysql2
     DB_USER: guestdb
     DB_PASS: password
     DB_NAME: testdb
     DB_HOST: 10.0.100.5:3306

     vpc_access_connector:
     name: projects/hostproject-26a2/locations/us-central1/connectors/testserverlessvpc
app.standard.yaml
如下

 $ gcloud compute networks vpc-access connectors list --region=us-central1
  CONNECTOR_ID       REGION       NETWORK          IP_CIDR_RANGE    MIN_THROUGHPUT  MAX_THROUGHPUT  STATE
  testserverlessvpc  us-central1  kube-shared-vpc  192.168.60.0/28  200             300             READY
     $ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
  NAME                 ADDRESS/RANGE     TYPE      PURPOSE      NETWORK           REGION  SUBNET  STATUS
 cloudsqltestrangenew  10.0.100.0/20    INTERNAL  VPC_PEERING  kube-shared-vpc                   RESERVED
$ gcloud sql instances list
 NAME       DATABASE_VERSION  LOCATION       TIER         PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
 mysql2           MYSQL_5_7         us-central1-b  db-f1-micro  -            10.0.100.5       RUNNABLE
 runtime: python37

 service: appcentralpri
 env_variables:
     CLOUD_SQL_CONNECTION_NAME: projectname:us-central1:mysql2
     DB_USER: guestdb
     DB_PASS: password
     DB_NAME: testdb
     DB_HOST: 10.0.100.5:3306

     vpc_access_connector:
     name: projects/hostproject-26a2/locations/us-central1/connectors/testserverlessvpc
部署进行得很顺利,在日志中未遇到任何错误

    gcloud app deploy app.standard.yaml
但是,当我尝试连接到应用程序端点时,无法使用“未找到服务器”访问该页面

我已将
VPC访问
Network Compute User
角色授予
VPC主机项目上的
App Engine默认服务帐户

      <hostproject>-26a2@appspot.gserviceaccount.com 


同样的
CloudRun
CloudSQL
设置对我来说很有效,但却在
GAE
中挣扎。有解决此问题的建议吗?

您的app.yaml文件格式错误。
vpc\u访问\u连接器:
需要位于根级别。这里它被作为一个环境变量值

runtime: python37

 service: appcentralpri
 env_variables:
     CLOUD_SQL_CONNECTION_NAME: projectname:us-central1:mysql2
     DB_USER: guestdb
     DB_PASS: password
     DB_NAME: testdb
     DB_HOST: 10.0.100.5:3306

 vpc_access_connector:
     name: projects/hostproject-26a2/locations/us-central1/connectors/testserverlessvpc

谢谢尝试过但没有运气为什么需要
CLOUD\u SQL\u CONNECTION\u NAME
env var?您可以在设置连接参数的地方共享您的代码吗?以下是应用程序源代码和云运行部署,在同一个项目中,通过使用相同的连接器工作?嗯。奇怪。。。你能解释一下你为什么设置窥视吗?在哪个网络之间?不确定是否关注您的最新评论。无论如何,你能解释一下你在哪里部署了你的工作云运行吗?使用与App Engine相同的VPC连接器和相同的项目?