0

Google App EngineからでCloudSQL instance実行中の に接続するための PoC を行っていPrivate IP ますSharedVPC。テスト用のサンプル アプリケーションは、
https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/cloud-sql/mysql/sqlalchemy/README.mdからのものです。

私のServerless VPC Connector Rangeは次のとおりです

 $ 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

Private IP Range以下のとおりであります

     $ 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

MySQLインスタンスは次のとおりです

$ 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

app.standard.yaml以下のとおりであります

 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 AccessNetwork Compute User役割を与えApp Engine Default Service accountましたVPC Host Project

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

アップデート

app.yaml にも以下に追加されましたが、うまくいきません

 env_variables:
   GAE_USE_SOCKETS_HTTPLIB : 'anyvalue'

https://cloud.google.com/appengine/docs/standard/python/sockets#make_httplib_use_sockets

同じセットアップで、私のためCloudRunCloudSQL働いたが、苦労してGAEいる. この問題を解決するための提案はありますか?

4

1 に答える 1