C'est un peu délicat, mais voici ce qui a fonctionné pour moi. Je vais vous aider à configurer le Quickstart App Engine avec psycopg2 et après cela, vous aurez l'idée.
Utilisez le Guide de démarrage rapide pour Python dans l'environnement flexible App Engine documentation pour configurer et déployer votre application.
Utilisez la Se connecter depuis App Engine documentation pour connecter votre application App Engine à Cloud SQL Postgre SQL.
J'ai fait quelques modifications pour que cela fonctionne :
Dans app.yaml
ajouter :
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".
Dans requirements.txt
ajouter :
psycopg2
psycopg2-binary
Dans main.py
ajouter :
@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"
Utiliser le gcloud app deploy
commande pour déployer votre application.
Après le déploiement, utilisez le gcloud app browse
commande pour ouvrir l'application dans le navigateur.
Lors de l'accès au lien https://[PROJECT_ID].appspot.com/connect
Il devrait répondre par Connection was established!