Det är lite knepigt, men här är vad som fungerade för mig. Jag hjälper dig att ställa in Quickstart App Engine med psycopg2 och efter det kommer du att få idén.
Använd snabbstart för Python i App Engine Flexible Environment dokumentation för att konfigurera och distribuera din app.
Använd Ansluta från App Engine dokumentation för att ansluta till din App Engine-app till Cloud SQL Postgre SQL.
Jag har gjort lite ändringar för att få det att fungera:
I app.yaml
lägg till:
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".
I requirements.txt
lägg till:
psycopg2
psycopg2-binary
I main.py
lägg till:
@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"
Använd gcloud app deploy
kommando för att distribuera din app.
Efter implementeringen använder du gcloud app browse
kommandot för att öppna appen i webbläsaren.
När du kommer åt länken https://[PROJECT_ID].appspot.com/connect
Den ska svara med Connection was established!