Немного поздно, чтобы ответить, но я думаю, что у меня есть решение, и оно включает использование Cloud SQL Proxy . В целом, вам сначала нужно использовать Gcloud SDK (входит в состав Colab) для аутентификации, затем установить прокси-сервер, а затем раскрутить его. Я сделал это в двух блоках
# gcloud login and check the DB
!gcloud auth login
!gcloud config set project [YOUR PROJECT ID]
!gcloud sql instances describe [YOUR CLOUDSQL INSTANCE ID]
Эта последняя строка выведет дамп информации, и мы хотим connectionName
в частности. Затем следующий блок загружает прокси-сервер и сообщает его прокси-серверу для этого экземпляра CloudSQL:
# download and initialize the psql proxy
!wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
!chmod +x cloud_sql_proxy
# "connectionName" is from the previous block
!nohup ./cloud_sql_proxy -instances="[connectionName]"=tcp:5432 &
!sleep 30s
Позже вы можете (и я нашел это полезным) проверить логи прокси с помощью
!cat nohup.out
И, наконец, вы можете создать соединение с адресом 127.0.0.1:5432
(или любым другим портом, который вы указали выше. Я сделал это с psycopg2
, как это
conn = psycopg2.connect(
host='127.0.0.1', port='5432', database=[YOUR DB NAME],
user=[USERNAME], password=[PASSWORD])
Кажется, что это работает, хотя это определенно немного медленнее, чем прямое соединение.