iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
生成式 AI

30 天用 Cursor 開發專案:AI 輔助程式開發實戰紀錄系列 第 21

Day 21:透過 Cursor 自動部署到 GCP — 打造真正的全自動雲端開發流程

  • 分享至 

  • xImage
  •  

image.png

到了第 21 天,我們的專案已經能在本地開發、測試、自動建構,甚至部署到 Vercel。

但在實務上,有時候我們需要更靈活的部署方式,例如:

  • 想自訂伺服器與環境變數
  • 想整合後端 API、Database 或 Cloud Storage
  • 想擁有更高的擴充與控制權

這時候,就該把專案搬上 GCP(Google Cloud Platform)

而且我們會透過 Cursor,讓 AI 幫我們完成一整套部署自動化。


☁️ 為什麼選擇 GCP?

GCP 對於前端 + AI 應用開發者來說非常友好:

  • 支援 Node.js / Next.js / Python 等環境
  • 與 Cloud Run 無縫整合:自動擴容、無伺服器(Serverless)
  • 可連接 Firestore、Cloud Storage、AI API 等服務
  • 最棒的是:可以直接用 GitHub 自動部署
  • 當然還有免費三個月的試用~(有金額限制無法狂用)

這代表:

你只要 Commit 一次,GCP 就能自動 Build、Deploy、上線。


🧠 用 Cursor 協助自動部署流程

Cursor 在這裡扮演「AI DevOps 助理」的角色。

你可以用自然語言告訴它:

幫我設定 GitHub Actions,自動部署到 GCP Cloud Run。

Cursor 會幫你:

  • 建立 .github/workflows/deploy.yml
  • 產生 Dockerfile(如果你沒有)
  • 協助設定 GCP 專案 ID、service account、image name
  • 自動檢查是否有缺少 GCP 權限或憑證

⚙️ 建立 GCP 自動部署流程

Step 1. 建立 Dockerfile(讓 Cloud Run 能運行)

# 使用 Node 官方映像
FROM node:18-alpine

WORKDIR /app
COPY package*.json ./
RUN npm install --only=production
COPY . .

EXPOSE 8080
CMD ["npm", "start"]

💡 小提示:

如果你的專案是 Next.js,請在 package.json 中確保有:

"scripts": {
  "start": "next start -p 8080"
}


Step 2. 在 GCP Console 建立專案與 Cloud Run

image.png

  1. 前往 console.cloud.google.com
  2. 建立新專案(例如 synvize-app
  3. 啟用:
    • Cloud Run
    • Artifact Registry
    • Cloud Build
  4. 建立一個服務帳戶(Service Account)並下載金鑰 JSON 檔。

Step 3. 設定 GitHub Secrets

進入 GitHub 專案:

Settings → Secrets → Actions

新增以下環境變數:

名稱 說明
GCP_PROJECT_ID 你的 GCP 專案 ID
GCP_SA_KEY 服務帳戶金鑰 JSON(整份 JSON)
GCP_REGION 例如:asia-east1

Step 4. 建立 .github/workflows/deploy.yml

name: Deploy to GCP Cloud Run

on:
  push:
    branches: [ "main" ]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup gcloud CLI
        uses: google-github-actions/setup-gcloud@v2
        with:
          project_id: ${{ secrets.GCP_PROJECT_ID }}
          service_account_key: ${{ secrets.GCP_SA_KEY }}

      - name: Build and push Docker image
        run: |
          gcloud builds submit --tag gcr.io/${{ secrets.GCP_PROJECT_ID }}/synvize-app

      - name: Deploy to Cloud Run
        run: |
          gcloud run deploy synvize-app \
            --image gcr.io/${{ secrets.GCP_PROJECT_ID }}/synvize-app \
            --region ${{ secrets.GCP_REGION }} \
            --allow-unauthenticated


💡 Cursor 實戰應用

你可以直接在 Cursor 下指令:

幫我建立 deploy.yml,部署到 GCP Cloud Run,服務名稱叫 synvize-app。

它會自動:

  • 偵測你使用的 Node 版本
  • 產生正確的 Dockerfile
  • 建立 workflow 並提示缺少的環境變數
  • 修正 GCP 權限錯誤(例如 JSON 格式錯誤或 token 遺失)

你甚至可以進一步指示:

幫我檢查 deploy.yml 有沒有漏掉 Cloud Run 區域設定。

Cursor 會檢查 YAML 並幫你補上。


✅ 部署完成後測試

當你 push 到 main 分支後,GitHub Actions 會自動執行。

如果成功,你會在 GCP Cloud Run 中看到一個公開網址,例如:

https://synvize-app-xxxxxx-uc.a.run.app

現在你的整個網站,就正式從 Cursor → GitHub → GCP 全自動上線!


🔄 Day 21 總結

今天,我們完成了 真正意義上的全自動部署

你學會了:

  • 如何透過 Cursor 自動產生部署設定與檔案
  • 如何在 GitHub Actions 結合 GCP Cloud Run
  • 如何設定 DockerfileService Account
  • 並建立一個「一推即上線」的 AI 自動化流程

通常我會在GCP上面加上DB 之類的

但真的都透過Cursor去做執行與部署

當然你可能要緊盯著他下指令

因為他會開一些權限(如果你要在本機端測試的話)


上一篇
Day 20:部署實戰 — 從 Cursor 到雲端 Vercel
系列文
30 天用 Cursor 開發專案:AI 輔助程式開發實戰紀錄21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言