2017年9月17日 星期日

GCP - How to create PostgreSQL + Python environment in Google Cloud Platform

當要自行架設網站時,不想花錢購買系統軟體的前題下,一般都會選擇 Linux + MySQL/PostgreSQL + Java/Python,如果還要架設 WEB server 還可以選擇 Apache + Tomcat + JSP/PHP,加上伺服器的管理,這樣對只想專注在程式語言開發的人,往往在環境架設上就會花費大量的時間,隨著 Google 提供的 Google Cloud Platform 以上環境的建置不需要任何硬體的花費,安裝上也因相對簡單與快速,甚至很容易就可以重建環境,目前第一年試用免費,未來則會依要使用的環境進行付費。


如何從零開始在 Google Cloud Platform 建立 PostgreSQL,並讓 Python 可以連結到 PostgreSQL,以下進行說明。

一、首先就是要申請 Google Cloud Platform

到 https://console.cloud.google.com/ 建立自己的平台

二、建立專案

點選 "請選取專案" 建立第一個自己的專案
選擇建立專案
輸入專案名稱
並選擇目前的 Project1
二、PostgreSQL 建立

在上方查詢輸入 SQL,即可出現 SQL 選項
選擇建立執行個體
再選擇 PostgreSQL
建立執行個體 ID,以及目前資料庫的伺服器位置 (相關可參考 GCP 全球據點)
完成後即顯示綠色打勾,而執行個體會預設之前選擇的 Project1

點選 psqltest1 可進入資料庫管理的頁面
回到主控台即可看到多了 SQL 的區塊,並顯示相關使用量資訊
點選上方 Google Cloud Shell
command : gcloud sql connect <SQL DB NAME> -u <USER NAME>
輸入 gcloud sql connect psqltest1 -u postgres 即可進行連線 5 分鐘
成功連線後即可在 Google Cloud Platform 下的 SQL 頁面,再目前資料庫換權的頁面看到目前被授權的網路

使用 SQL 建立 table 後即可透過 psql \dt 取得目前的 table list

三、Python 執行環境

系統預設兩種 Python,分別是 python => 2.7.9,以及 python3 => 3.4.2
測試 python import psycopg2,會發現系統並沒有 psycopg2 的 module
使用 python 測試環境 virtualenv 進行不同版本的測試,在進入測試環境前要先設定要安裝的套件,因此需要建立 requirements.txt 檔,並輸入要安裝的套件名稱,前在檔案內維護 psycopg2
接下來進行 python 測試環境,並輸入以下命令

virtualenv env_eric
source env_eric/bin/activate
pip install -r requirements.txt
即可安裝需要的套件到測試環境 env_eric


再來是使用 python 連線 PostgreSQL

import psycopg2
             
conn = psycopg2.connect(database="postgres", user="postgres", password="*****", host="XXX.XXX.XXX.XXX", port="5432")
print("connect database completed")

如果無法連線,有可能是之前授權的時間已 Time-out,這時則需要先執行 gcloud sql connect psqltest1 -u postgres 進行授權連線,即可正確與資料庫連線
正式的連線方式可以參考 : Using Cloud SQL for PostgreSQL

相關 Database Info 可以在 SQL 的頁面查詢
host = IPv4位址
database = 資料庫名稱 (不是主要執行個體 psqltest1 這個名稱,是資料庫名稱)

沒有留言:

張貼留言

How to install & specified python version or distreibtuion package version in google colab

在買了 RTX 3080 要來 挖礦...  嗯~是跑機器學習後,結果發現了 GOOGLE COLAB,其實之前在「GAN 對抗式生成網路」一書就有看到,但資訊人就是什麼都想自己安裝,在本機用 Anaconda + pyCharm 弄了 GPU 環境,結果有天從新竹回家發現家裡沒...