1. 總覽
在本實驗室中,您將使用 Cloud Run 工作建立 AlloyDB 資料庫。您將設定私人服務連線和無伺服器 VPC 存取,透過私人 IP 啟用 Cloud Run 作業與 AlloyDB 資料庫之間的連線。
學習目標
在本實驗室中,您將瞭解如何執行下列操作:
- 設定 AlloyDB 叢集和執行個體
- 部署 Cloud Run 工作來建立 AlloyDB 資料庫
2. 設定和需求
設定 Cloud 專案
- 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶。



- 專案名稱是這個專案參與者的顯示名稱。這是 Google API 未使用的字元字串。你隨時可以更新該位置資訊。
- 專案 ID 在所有 Google Cloud 專案中不得重複,且設定後即無法變更。Cloud 控制台會自動產生不重複的字串,通常您不需要在意這個字串。在大多數程式碼研究室中,您需要參照專案 ID (通常會標示為
PROJECT_ID)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。你也可以嘗試使用自己的名稱,看看是否可用。完成這個步驟後就無法變更,且專案期間都會維持這個設定。 - 請注意,部分 API 會使用第三個值,也就是「專案編號」。如要進一步瞭解這三種值,請參閱說明文件。
- 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成本程式碼研究室的費用應該不高,甚至完全免費。如要關閉資源,避免產生本教學課程以外的費用,您可以刪除自己建立的資源,或刪除整個專案。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。
環境設定
按一下搜尋列右側的圖示,啟用 Cloud Shell。

如要啟用服務 API,請將下列指令複製並貼到終端機,然後按下 Enter 鍵:
gcloud services enable \
alloydb.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
vpcaccess.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
--quiet
設定環境變數:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
export DB_DATABASE=test
export DB_USER=postgres
export DB_PASSWORD=password123
export REGION=us-central1
export CLUSTER=test-cluster
export INSTANCE=test-instance
export VPC_CONNECTOR=vpcconnector
3. 設定及建立 AlloyDB 叢集
設定設定所需的權限。這樣 Cloud Run Job 就能連線至 AlloyDB 資料庫。
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
設定私人服務連線
私人服務連線會以虛擬私有雲對等互連的方式運作,可連結您的虛擬私有雲網路與 AlloyDB 資源 (叢集和執行個體) 所在的基礎 Google Cloud 虛擬私有雲網路。私人連線提供內部 IP 位址,可讓虛擬私有雲網路中的資源和存取的 AlloyDB 資源進行專屬通訊。虛擬私有雲網路中的資源不需要網際網路存取權或外部 IP 位址,即可連線至 AlloyDB 資源。
如要在與 AlloyDB 相同的雲端專案中,建立虛擬私有雲網路的私人服務連線設定,請執行下列兩項作業:
在虛擬私有雲網路中建立分配的 IP 位址範圍。
gcloud compute addresses create google-managed-services-default \
--global \
--purpose=VPC_PEERING \
--prefix-length=20 \
--network=projects/$PROJECT_ID/global/networks/default
在虛擬私有雲網路與基礎 Google Cloud 虛擬私有雲網路之間建立私人連線。這個步驟約需 2 分鐘。
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=google-managed-services-default \
--network=default \
--project=$PROJECT_ID
建立 AlloyDB 叢集。
gcloud beta alloydb clusters create $CLUSTER \
--password=$DB_PASSWORD \
--network=default \
--region=$REGION \
--project=$PROJECT_NAME
gcloud beta alloydb clusters describe $CLUSTER --region=$REGION
建立 AlloyDB 執行個體。這個步驟需要約 10 分鐘。
gcloud beta alloydb instances create $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--instance-type=PRIMARY \
--cpu-count=2 \
--project=$PROJECT_NAME
gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region $REGION
在 Cloud 控制台中查看建立的叢集。

將資料庫 IP 位址儲存到變數中。""
export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--format=json | jq \
--raw-output ".ipAddress")
echo "DB_HOST=$DB_HOST"
4. 探索 Cloud Run 工作程式碼
建立 AlloyDB 資料庫的方法有很多種,方法之一是建立 Compute Engine VM、安裝 psql 用戶端,然後連線至執行個體來建立資料庫。如要進一步瞭解這種做法,請參閱這篇文章。
在本實驗室中,您將使用 Cloud Run 工作建立新的 AlloyDB 資料庫。
請查看下列檔案:
- Dockerfile - 安裝必要依附元件(postgresql-client)
- script.sh:使用指令列公用程式建立資料庫
在 Cloud Shell 中建立新資料夾:
mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job
建立新檔案 Dockerfile:
cat > Dockerfile <<EOF
FROM ubuntu:latest
RUN apt-get update && apt-get install -y postgresql-client && apt-get clean
COPY script.sh /
RUN chmod +x /script.sh
CMD ["/script.sh"]
ENTRYPOINT ["/bin/bash"]
EOF
建立新檔案 script.sh,並加入以下內容:
echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"
psql -h $DB_HOST -l
變更 script.sh 的權限:
chmod +x script.sh
5. 部署 Cloud Run 工作
設定無伺服器 VPC 存取。這樣一來,Cloud Run 作業就能使用內部/私人 IP 與 AlloyDB 叢集通訊。這個步驟約需 2 分鐘。
gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
--region=${REGION} \
--range=10.8.0.0/28
建立 Artifact Registry 存放區,用於儲存容器映像檔。
gcloud artifacts repositories create db-job-repository \
--repository-format=docker \
--location=$REGION
建構容器映像檔並發布至 Artifact Registry。
gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest
部署 Cloud Run Job。
gcloud beta run jobs create db-job \
--image=$REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest \
--set-env-vars DB_HOST=$DB_HOST \
--set-env-vars PGUSER=$DB_USER \
--set-env-vars PGPASSWORD=$DB_PASSWORD \
--set-env-vars PGDB=$DB_DATABASE \
--vpc-connector $VPC_CONNECTOR \
--region $REGION
查看用於建立工作的旗標:
--vpc-connector - Cloud Run 作業會使用虛擬私有雲連接器連線至 AlloyDB 私人 IP 位址。
在 Cloud 控制台中查看建立的工作。

執行 Cloud Run 工作,建立 test 資料庫。
gcloud beta run jobs execute db-job --region $REGION
在 Cloud 控制台中查看 Cloud Run 作業的記錄。

6. 恭喜!
恭喜,您已完成本程式碼研究室!
涵蓋內容:
- 如何建立 AlloyDB 叢集和執行個體
- 如何使用 Cloud Run 工作建立 AlloyDB 資料庫
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
刪除專案
如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。