Es un poco complicado, pero esto es lo que funcionó para mí. Te ayudaré a configurar el Quickstart App Engine con psycopg2 y luego tendrás una idea.
Usa el Inicio rápido para Python en el entorno flexible de App Engine documentación para configurar e implementar su aplicación.
Utilice el Conexión desde App Engine documentación para conectar su aplicación App Engine a Cloud SQL Postgre SQL.
He hecho ligeras modificaciones para que funcione:
En app.yaml
añadir:
beta_settings:
cloud_sql_instances: [INSTANCE_CONNECTION_NAME]=tcp:5432
#[INSTANCE_CONNECTION_NAME] = [PROJECT_NAME]:[INSTANCE_ZONE]:[INSTANCE_NAME]
#[INSTANCE_CONNECTION_NAME] can be found at Google Cloud Console Cloud SQL's instance page, under "Instance connection name".
En requirements.txt
añadir:
psycopg2
psycopg2-binary
En main.py
añadir:
@app.route('/connect')
def connect():
try:
#host='172.17.0.1' is the defult IP for the docker container that it is being created during the deployment of the App Engine
conn = psycopg2.connect("dbname='postgres' user='postgres' host='172.17.0.1' password='test'")
return "Connection was established!"
except:
return "I am unable to connect to the database"
Usa la gcloud app deploy
comando para implementar su aplicación.
Después de la implementación, usa la gcloud app browse
comando para abrir la aplicación en el navegador.
Al acceder al enlace https://[PROJECT_ID].appspot.com/connect
Debería responder con Connection was established!