今天來跟大家介紹 GCP terraform 如何利用 cloud build 建置 github
內的 image 且推送到 Artifact Registry 存儲, 並且最終自動化發布成 cloud run
我是參考以下文件
Deploying to Cloud Run | Cloud Run Documentation | Google Cloud
因為 cloud build 的程式碼(step) 是基於指令行的動作在運作, 所以這個問題變得很簡單, 只要查找想做的目標所需的 gcloud 指令, 按照支援的語法放進 terraform 裡即可
clone 後進入專案該資料夾
在以上代碼插入以下指令即可
step {
name = "gcr.io/cloud-builders/gcloud"
args = ["run", "deploy", "${var.name}", "--image", "$_AR_HOSTNAME/$PROJECT_ID/$_REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA", "--region", "${var.region}", "--platform", "managed", "--allow-unauthenticated"]
}
等價於指令
gcloud run deploy cloud-run-id —image image-in-artifact—registry —region asia-east-1 --platform managed --allow-unauthenticated
所以其實 cloud build 的撰寫不難, 只要把地端會下得指令搬上來即可
創建用 make start
釋放資源用 make destroy
💡 注意, 這個用 cloud build 創建的 cloud run 並沒有被 terraform 追蹤, 所以不是完整的實做, 用完記得要手動刪除