從本機電腦連線至 PostgreSQL 適用的 Cloud SQL
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
瞭解如何透過 Google Cloud 控制台和用戶端應用程式,在 Linux、macOS 或 Windows 本機電腦上部署連結至 PostgreSQL 執行個體的範例應用程式。
假設您及時完成所有步驟,這項快速入門導覽課程建立的資源通常不到一美元。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
啟用在本機電腦上執行 Cloud SQL 範例應用程式所需的 Cloud API。
按一下「Enable APIs」(啟用 API) 按鈕,啟用本快速入門導覽課程所需的 API。
這會啟用下列 API:
- Cloud SQL Admin API
- IAM API
安裝 gcloud CLI,透過指令列存取 Google Cloud 資源。gcloud CLI 用於執行本快速入門導覽課程中顯示的
gcloud CLI
指令。所有指令都經過格式化,可在 Linux/macOS 終端機或 Windows Powershell 中執行。開啟終端機並執行下列
gcloud
指令:gcloud services enable sqladmin.googleapis.com iam.googleapis.com
這個指令會啟用下列 API:
- Cloud SQL Admin API
- IAM API
設定 Cloud SQL
建立 Cloud SQL 執行個體
建立具有公開 IP 位址的執行個體
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 點選「建立執行個體」。
- 按一下「Choose PostgreSQL」(選擇 PostgreSQL)。
- 在「Instance ID」(執行個體 ID) 中輸入
quickstart-instance
。 - 輸入 postgres 使用者的密碼。請儲存這個密碼,以供日後使用。
- 在「選擇區域和可用區供應情形」部分,點選「單一可用區」選項。
- 按一下並展開「Show Configuration Options」(顯示設定選項) 部分。
- 在「Machine Type」(機器類型) 下拉式選單中,選取「Lightweight」(輕量)。
按一下「建立執行個體」,然後等待執行個體初始化並啟動。
建立具有公開 IP 位址的執行個體
執行下列 gcloud
sql instances create
指令前,請將 DB_ROOT_PASSWORD 替換為資料庫使用者的密碼。
視需要修改下列參數的值:
- --database_version:資料庫引擎類型和版本。 如未指定,系統會使用 API 預設值。 如要查看目前可用的版本,請參閱 gcloud database versions 說明文件。
- --cpu:要在機器中設定的核心數量。
- --memory:整數值,表示要在機器中設定的記憶體量。請提供大小單位 (例如 3072MB 或 9GB)。如未指定單位,系統會假設您使用的是 GB。
- --region:執行個體所在的區域位置 (例如 asia-east1、us-east1)。如未指定,系統會使用預設的
us-central
。 查看完整區域清單。
執行 gcloud
sql instances create
指令,建立 Cloud SQL 執行個體。
gcloud sql instances createquickstart-instance --database-version=POSTGRES_13 --cpu=1 --memory=4GB --region=us-central --root-password=DB_ROOT_PASSWORD
建立資料庫
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 選取「
quickstart-instance
」。 - 開啟「資料庫」分頁。
- 按一下 [Create database] (建立資料庫)。
- 在「New database」(新增資料庫) 對話方塊中,輸入
quickstart_db
做為資料庫名稱。
- 點選「建立」。
執行 gcloud
sql databases create
指令來建立資料庫。
gcloud sql databases createquickstart_db --instance=quickstart-instance
新增使用者
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 在「SQL」導覽選單中選取「使用者」。
- 按一下「新增使用者帳戶」。
- 在「Add a user account to instance instance_name」(在執行個體「instance_name」中新增使用者帳戶) 頁面中,
新增下列資訊:
- 在「Username」(使用者名稱) 欄位中輸入
quickstart-user
。 - 在「Password」(密碼) 欄位中,指定資料庫使用者的密碼。 請記下這個值,本快速入門導覽課程的後續步驟會用到。
- 在「Username」(使用者名稱) 欄位中輸入
- 按一下「新增」。
更改下列內容:
- PASSWORD,並提供資料庫使用者的密碼。 請記下這個值,本快速入門導覽課程的後續步驟會用到。
執行 gcloud sql users create
指令來建立使用者。
gcloud sql users createquickstart-user --instance=quickstart-instance --password=PASSWORD
Cloud SQL 的使用者名稱長度限制與地端 PostgreSQL 相同。
設定服務帳戶
建立服務帳戶
- 前往 Google Cloud 控制台的「Create service account」(建立服務帳戶) 頁面。
- 選取 Google Cloud 專案。
- 輸入
quickstart-service-account
做為服務帳戶名稱。 - 選用:輸入服務帳戶的說明。
- 按一下「建立並繼續」,然後繼續進行下一個步驟。
- 選擇要授予專案服務帳戶的 Cloud SQL 用戶端角色。
- 按一下「繼續」。
- 按一下「Done」(完成),即完成建立服務帳戶。
建立並下載服務帳戶金鑰檔案
- 前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面。
- 選取專案。
- 點選要建立金鑰的
quickstart-service-account
服務帳戶電子郵件地址。 - 按一下「Keys」(金鑰) 分頁標籤。
- 按一下「Add key」(新增金鑰) 下拉式選單,然後選取「Create new key」(建立新的金鑰)。
- 選取「JSON」做為金鑰類型,然後按一下「Create」(建立)。
按一下「Create」(建立),即可下載服務帳戶金鑰檔案。金鑰檔案下載後,就不能再次下載。
請務必妥善保存金鑰檔案,因為此檔案可當做服務帳戶進行驗證。您可以任意移動及重新命名這個檔案。
建立服務帳戶
- 如要建立服務帳戶,請執行
gcloud iam service-accounts create
指令: DESCRIPTION
:服務帳戶的選填說明- 如要為專案中的服務帳戶授予 Cloud SQL 用戶端角色,請執行
gcloud projects add-iam-policy-binding
指令。將 PROJECT_ID 替換為您的 Google Cloud 專案 ID:gcloud projects add-iam-policy-binding
PROJECT_ID --member="serviceAccount:quickstart-service-account@PROJECT_ID .iam.gserviceaccount.com" --role="roles/cloudsql.client"
gcloud iam service-accounts create quickstart-service-account --description="DESCRIPTION " --display-name="quickstart-service-account "
請替換下列值:
建立並下載服務帳戶金鑰檔案
如要從本機電腦使用剛建立的服務帳戶,您需要服務帳戶金鑰檔案,才能將範例應用程式驗證為服務帳戶。如要建立及下載服務帳戶金鑰檔案,請執行 gcloud iam service-accounts keys create
指令:
gcloud iam service-accounts keys createKEY_FILE --iam-account=quickstart-service-account@PROJECT_ID .iam.gserviceaccount.com
替換下列值:
-
KEY_FILE
:私密金鑰的新輸出檔案路徑,例如~/sa-private-key.json
。 -
PROJECT_ID
:您的 Google Cloud 專案 ID。
服務帳戶金鑰檔案會下載至本機。金鑰檔案下載後,就不能再次下載。
請務必妥善保存金鑰檔案,因為任何人都能使用此檔案,當做服務帳戶進行驗證。您可以任意移動及重新命名這個檔案。
為程式設計語言設定開發環境
為偏好的程式設計語言設定本機電腦的開發環境。
請完成下列步驟,設定開發環境來執行 Go 範例應用程式。
- 前往 Go 開發環境設定指南。
- 完成「安裝 Go」一節中的操作說明。
請完成下列步驟,設定開發環境來執行 Java 範例應用程式。
- 前往 Java 開發環境設定指南。
- 完成「安裝 JDK (Java Development Kit)」一節中的指示。
- 按照「安裝自動化建置工具」一文中的操作說明,設定 Apache Maven。
請完成下列步驟,設定開發環境來執行 Node.js 範例應用程式。
- 請參閱 Node.js 開發環境設定指南。
- 請按照「安裝 Node.js 和 npm」一節中的說明操作。
請完成下列步驟,設定開發環境來執行 Python 範例應用程式。
- 請參閱 Python 開發環境設定指南。
- 完成「安裝 Python」一節中的操作說明。
安裝 Git
安裝開放原始碼的版本管控系統 Git。
Linux
請按照 Linux 的官方 Git 安裝說明文件操作。
macOS
請按照 macOS 的官方 Git 安裝說明文件操作。
Windows
請按照 Windows 的官方 Git 安裝說明文件操作。
複製範例應用程式
使用 git clone
指令,將範例應用程式複製到本機電腦。
執行下列指令,將 Go 範例應用程式複製到本機電腦,並將目錄變更為包含範例應用程式的目錄。
-
複製範例應用程式。
git clone https://github.com/GoogleCloudPlatform/golang-samples
-
將目錄變更為包含範例應用程式的目錄。
cd golang-samples/cloudsql/postgres/database-sql
執行下列指令,將 Java 範例應用程式複製到本機電腦,然後將目錄變更為包含範例應用程式的目錄。
-
複製範例應用程式。
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
-
將目錄變更為包含範例應用程式的目錄。
cd java-docs-samples/cloud-sql/postgres/servlet
執行下列指令,將 Node.js 範例應用程式複製到本機電腦,然後將目錄變更為包含範例應用程式的目錄。
-
複製範例應用程式。
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
-
將目錄變更為包含範例應用程式的目錄。
cd nodejs-docs-samples/cloud-sql/postgres/knex
執行下列指令,將 Python 範例應用程式複製到本機電腦,然後將目錄變更為包含範例應用程式的目錄。
-
複製範例應用程式。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
-
將目錄變更為包含範例應用程式的目錄。
cd python-docs-samples/cloud-sql/postgres/sqlalchemy
設定及執行範例應用程式
設定並執行範例應用程式。
Linux/macOS
開啟終端機並執行下列指令,初始化執行範例應用程式所需的環境變數。執行指令前,請先進行下列替換作業:
- CREDENTIALS_JSON_FILE,並使用
/path/to/service/account/key.json
等格式,將服務帳戶的 JSON 憑證金鑰檔案路徑提供給輔助工具。 - INSTANCE_CONNECTION_NAME 改成執行個體的連線名稱,該名稱會顯示在 Cloud SQL 執行個體的總覽頁面上。
- YOUR_DB_PASSWORD,並使用您在上一個「建立使用者」快速入門步驟中建立的
quickstart-user
密碼。
export GOOGLE_APPLICATION_CREDENTIALS=CREDENTIALS_JSON_FILE export INSTANCE_CONNECTION_NAME='INSTANCE_CONNECTION_NAME ' export DB_PORT='5432' export DB_NAME='quickstart_db ' export DB_USER='quickstart-user ' export DB_PASS='YOUR_DB_PASSWORD '
執行下列指令,在本機電腦上取得 Go 範例應用程式的依附元件,並執行範例應用程式。
-
取得執行範例應用程式所需的依附元件。
go get ./...
-
執行範例應用程式。
go run cmd/app/main.go
-
查看執行中的範例應用程式。開啟瀏覽器視窗,然後前往
http://127.0.0.1:8080
。 - 如要停止範例應用程式,請在啟動範例應用程式的終端機視窗中按下 Control+C。
執行下列指令,初始化執行範例應用程式所需的環境變數。執行指令前,請先進行下列替換:
- CREDENTIALS_JSON_FILE,並使用
/path/to/service/account/key.json
等格式,將服務帳戶的 JSON 憑證金鑰檔案路徑提供給輔助工具。 - INSTANCE_CONNECTION_NAME 改成執行個體的連線名稱,該名稱會顯示在 Cloud SQL 執行個體的總覽頁面上。
- YOUR_DB_PASSWORD,並使用您在上一個「建立使用者」快速入門步驟中建立的
quickstart-user
密碼。
export GOOGLE_APPLICATION_CREDENTIALS=CREDENTIALS_JSON_FILE export INSTANCE_CONNECTION_NAME='INSTANCE_CONNECTION_NAME ' export DB_PORT='5432' export DB_NAME='quickstart_db ' export DB_USER='quickstart-user ' export DB_PASS='YOUR_DB_PASSWORD '
-
執行下列指令,在本機電腦上取得 Java 範例應用程式的依附元件,並執行範例應用程式。
mvn jetty:run
-
查看執行中的範例應用程式。開啟瀏覽器視窗,然後前往
http://127.0.0.1:8080
。 - 如要停止範例應用程式,請在啟動範例應用程式的終端機視窗中按下 Control+C。
-
執行下列指令,初始化執行範例應用程式所需的環境變數。執行指令前,請先進行下列替換:
- CREDENTIALS_JSON_FILE,並使用
/path/to/service/account/key.json
等格式,將服務帳戶的 JSON 憑證金鑰檔案路徑提供給輔助工具。 - YOUR_DB_PASSWORD,並使用您在上一個「建立使用者」快速入門步驟中建立的
quickstart-user
密碼。
export GOOGLE_APPLICATION_CREDENTIALS=
CREDENTIALS_JSON_FILE export INSTANCE_HOST='127.0.0.1' export DB_PORT='5432' export DB_NAME='quickstart_db ' export DB_USER='quickstart-user ' export DB_PASS='YOUR_DB_PASSWORD ' - CREDENTIALS_JSON_FILE,並使用
- 下載 Cloud SQL 驗證 Proxy。
curl -o cloud-sql-proxy \ https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.0.0/cloud-sql-proxy.linux.amd64
- 以背景程序的形式執行 Cloud SQL 驗證 Proxy。將 INSTANCE_CONNECTION_NAME 改成 Cloud SQL 執行個體「總覽」頁面顯示的執行個體連線名稱。
./cloud-sql-proxy \ --credentials-file $GOOGLE_APPLICATION_CREDENTIALS \
INSTANCE_CONNECTION_NAME &
執行下列指令,在本機電腦上取得必要的 Node.js 套件,並執行範例應用程式。
-
安裝在本機執行應用程式所需的 Node.js 套件。
npm install
-
執行範例應用程式。
npm start
-
查看執行中的範例應用程式。開啟瀏覽器視窗,然後前往
http://127.0.0.1:8080
。 - 如要停止範例應用程式,請在啟動範例應用程式的終端機視窗中按下 Control+C。
執行下列指令,初始化執行範例應用程式所需的環境變數。執行指令前,請先進行下列替換:
- CREDENTIALS_JSON_FILE,並使用
/path/to/service/account/key.json
等格式,將服務帳戶的 JSON 憑證金鑰檔案路徑提供給輔助工具。 - INSTANCE_CONNECTION_NAME 改成執行個體的連線名稱,該名稱會顯示在 Cloud SQL 執行個體的總覽頁面上。
- YOUR_DB_PASSWORD,並使用您在上一個「建立使用者」快速入門步驟中建立的
quickstart-user
密碼。
export GOOGLE_APPLICATION_CREDENTIALS=CREDENTIALS_JSON_FILE export INSTANCE_CONNECTION_NAME='INSTANCE_CONNECTION_NAME ' export DB_PORT='5432' export DB_NAME='quickstart_db ' export DB_USER='quickstart-user ' export DB_PASS='YOUR_DB_PASSWORD '
執行下列指令,將 Python 範例應用程式的需求項目下載到本機電腦,然後執行範例應用程式。
-
初始化虛擬環境,並安裝執行範例應用程式的必要元件。
python3 -m venv env source env/bin/activate pip install -r requirements.txt
-
執行範例應用程式。
python app.py
-
查看執行中的範例應用程式。開啟瀏覽器視窗,然後前往
http://127.0.0.1:8080
。 - 如要停止範例應用程式,請在啟動範例應用程式的終端機視窗中按下 Control+C。
Windows
執行下列指令,初始化執行範例應用程式所需的環境變數。執行指令前,請先進行下列替換:
- CREDENTIALS_JSON_FILE,並使用
C:\Users\Your-Username\Downloads\key.json
等格式,將服務帳戶的 JSON 憑證金鑰檔案路徑提供給輔助工具。 - INSTANCE_CONNECTION_NAME 改成執行個體的連線名稱,該名稱會顯示在 Cloud SQL 執行個體的總覽頁面上。
- YOUR_DB_PASSWORD,並使用您在上一個「建立使用者」快速入門步驟中建立的
quickstart-user
密碼。
$env:GOOGLE_APPLICATION_CREDENTIALS="CREDENTIALS_JSON_FILE " $env:INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME " $env:DB_PORT="5432" $env:DB_NAME="quickstart_db " $env:DB_USER="quickstart-user " $env:DB_PASS="YOUR_DB_PASSWORD "
執行下列指令,在本機電腦上取得 Go 範例應用程式的依附元件,並執行範例應用程式。
-
取得執行範例應用程式所需的依附元件。
go get ./...
-
執行範例應用程式。
go run cmd\app\main.go
-
查看執行中的範例應用程式。開啟瀏覽器視窗,然後前往
http://127.0.0.1:8080
。 - 如要停止範例應用程式,請在啟動範例應用程式的 Powershell 視窗中按下 Ctrl+C。
執行下列指令,初始化執行範例應用程式所需的環境變數。執行指令前,請先進行下列替換:
- CREDENTIALS_JSON_FILE,並使用
C:\Users\Your-Username\Downloads\key.json
等格式,將服務帳戶的 JSON 憑證金鑰檔案路徑提供給輔助工具。 - INSTANCE_CONNECTION_NAME 改成執行個體的連線名稱,該名稱會顯示在 Cloud SQL 執行個體的總覽頁面上。
- YOUR_DB_PASSWORD,並使用您在上一個「建立使用者」快速入門步驟中建立的
quickstart-user
密碼。
$env:GOOGLE_APPLICATION_CREDENTIALS="CREDENTIALS_JSON_FILE " $env:INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME " $env:DB_PORT="5432" $env:DB_NAME="quickstart_db " $env:DB_USER="quickstart-user " $env:DB_PASS="YOUR_DB_PASSWORD "
-
執行下列指令,在本機電腦上取得 Java 範例應用程式的依附元件,並執行範例應用程式。
mvn jetty:run
-
查看執行中的範例應用程式。開啟瀏覽器視窗,然後前往
http://127.0.0.1:8080
。 - 如要停止範例應用程式,請在啟動範例應用程式的 Powershell 視窗中按下 Ctrl+C。
-
執行下列指令,初始化執行範例應用程式所需的環境變數。執行指令前,請先進行下列替換:
- CREDENTIALS_JSON_FILE,並使用
C:\Users\Your-Username\Downloads\key.json
等格式,將服務帳戶的 JSON 憑證金鑰檔案路徑提供給輔助工具。 - YOUR_DB_PASSWORD,並使用您在上一個「建立使用者」快速入門步驟中建立的
quickstart-user
密碼。
$env:GOOGLE_APPLICATION_CREDENTIALS="
CREDENTIALS_JSON_FILE " $env:INSTANCE_HOST="127.0.0.1" $env:DB_PORT="5432" $env:DB_NAME="quickstart_db " $env:DB_USER="quickstart-user " $env:DB_PASS="YOUR_DB_PASSWORD " - CREDENTIALS_JSON_FILE,並使用
- 下載 Cloud SQL 驗證 Proxy。
wget https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.0.0/cloud-sql-proxy.x64.exe -O cloud-sql-proxy.exe
- 以背景程序的形式執行 Cloud SQL 驗證 Proxy。將 INSTANCE_CONNECTION_NAME 改成 Cloud SQL 執行個體「總覽」頁面顯示的執行個體連線名稱。
Start-Process -filepath ".\cloud-sql-proxy.exe" -ArgumentList ` "--credentials-file $env:GOOGLE_APPLICATION_CREDENTIALS"
INSTANCE_CONNECTION_NAME
執行下列指令,在本機電腦上取得必要的 Node.js 套件,並執行範例應用程式。
-
安裝在本機執行應用程式所需的 Node.js 套件。
npm install
-
執行範例應用程式。
npm start
-
查看執行中的範例應用程式。開啟瀏覽器視窗,然後前往
http://127.0.0.1:8080
。 - 如要停止範例應用程式,請在啟動範例應用程式的 Powershell 視窗中按下 Ctrl+C。
執行下列指令,初始化執行範例應用程式所需的環境變數。執行指令前,請先進行下列替換:
- CREDENTIALS_JSON_FILE,並使用
C:\Users\Your-Username\Downloads\key.json
等格式,將服務帳戶的 JSON 憑證金鑰檔案路徑提供給輔助工具。 - INSTANCE_CONNECTION_NAME 改成執行個體的連線名稱,該名稱會顯示在 Cloud SQL 執行個體的總覽頁面上。
- YOUR_DB_PASSWORD,並使用您在上一個「建立使用者」快速入門步驟中建立的
quickstart-user
密碼。
$env:GOOGLE_APPLICATION_CREDENTIALS="CREDENTIALS_JSON_FILE " $env:INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME " $env:DB_PORT="5432" $env:DB_NAME="quickstart_db " $env:DB_USER="quickstart-user " $env:DB_PASS="YOUR_DB_PASSWORD "
執行下列指令,在本機電腦上取得 Python 範例應用程式的需求,並執行範例應用程式。
-
初始化虛擬環境,並安裝執行範例應用程式的必要元件。
virtualenv --python python3 env .\env\Scripts\activate pip install -r requirements.txt
-
執行範例應用程式。
python app.py
-
查看執行中的範例應用程式。開啟瀏覽器視窗,然後前往
http://127.0.0.1:8080
。 - 如要停止範例應用程式,請在啟動範例應用程式的 Powershell 視窗中按下 Ctrl+C。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本頁所用資源的費用,請按照下列步驟操作。
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 選取
quickstart-instance
執行個體,開啟「Instance details」(執行個體詳細資料) 頁面。 - 在頁面頂端的圖示列中,按一下 [刪除]。
- 在「Delete instance」(刪除執行個體) 對話方塊中輸入
quickstart-instance
,然後按一下「Delete」(刪除) 以刪除執行個體。
選用清除步驟
如果您未使用指派給 quickstart-service-account
服務帳戶的 Cloud SQL 用戶端角色,可以移除該角色。
-
前往 Google Cloud 控制台的「IAM」頁面。
- 點選名為「quickstart-service-account」的 IAM 帳戶編輯圖示 (看起來像鉛筆)。
- 刪除 Cloud SQL 用戶端角色。
- 按一下 [儲存]。
如果您未使用本快速入門導覽課程啟用的 API,可以停用這些 API。
- 本快速入門導覽課程中啟用的 API:
- Cloud SQL Admin API
- Identity and Access Management API
前往 Google Cloud 控制台的「API」頁面。
選取要停用的 API,然後按一下「停用 API」按鈕。
後續步驟
您可以根據需求,進一步瞭解如何建立 Cloud SQL 執行個體。您也可以瞭解如何為 Cloud SQL 執行個體建立 PostgreSQL 使用者和資料庫。
如要進一步瞭解定價,請參閱 PostgreSQL 適用的 Cloud SQL 定價。
請點選下列連結瞭解更多資訊:
此外,您也可以瞭解如何從其他 Google Cloud 應用程式連線至 Cloud SQL 執行個體: