Това е малко сложно, но ето какво работи за мен. Ще ви помогна да настроите Quickstart App Engine с psycopg2 и след това ще схванете идеята.
Използвайте Бърз старт за Python в гъвкавата среда на App Engine документация за настройка и внедряване на вашето приложение.
Използвайте Свързване от App Engine документация за свързване на вашето приложение App Engine към Cloud SQL Postgre SQL.
Направих леки модификации, за да може това да работи:
В app.yaml
добави:
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".
В requirements.txt
добави:
psycopg2
psycopg2-binary
В main.py
добави:
@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"
Използвайте gcloud app deploy
команда за внедряване на вашето приложение.
След внедряването използвайте gcloud app browse
команда за отваряне на приложението в браузъра.
При достъп до връзката https://[PROJECT_ID].appspot.com/connect
Трябва да отговори с Connection was established!