Google Cloud Run 是一個全代管應用程式平台,讓開發者可以直接部署並執行容器化應用程式,而不需要管理任何底層基礎架構。Cloud Run 會依照實際流量自動擴縮,確保資源使用效率與成本效益。
這使 Cloud Run 成為部署 Web 應用、API,以及需要因應不穩定流量的背景工作(background workers)的理想選擇。本篇逐步教學,將帶你在 Cloud Run 上部署一個簡單的 serverless 應用。
部署前準備
在開始之前,請確認你已具備以下條件:
- 一個 Google Cloud Platform (GCP) 帳號
- 已安裝 Google Cloud SDK(若尚未安裝,後續步驟會說明)
- 已安裝 Docker,用來建立與管理 container image
- 一個範例應用程式(本文將建立一個簡單的 Flask 應用)
本指南將使用 Debian-based Linux 系統,因此相關安裝步驟會以 Linux 為主。
步驟1:設定你的 GCP Project

若尚未建立專案,請建立一個新的 project,或選擇既有專案。

接著啟用 Cloud Run API: 前往 APIs & Services > Library,搜尋 Cloud Run Admin API 並啟用。

之後到 Google Cloud Console 的 Dashboard,找到你的 Project ID,後續步驟會用到。

步驟 2:安裝Google Cloud SDK
若你尚未安裝 Google Cloud SDK,請依照以下步驟操作:
下載 SDK: `curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-x86_64.tar.gz`

解壓縮檔案: `tar -xf google-cloud-cli-linux-x86_64.tar.gz`

進入解壓後的目錄:`cd google-cloud-sdk`

執行安裝腳本:`./install.sh`

重新啟動終端機,並確認安裝成功:`gcloud –version`

接著初始化 SDK:`gcloud init` and following the on-screen instructions to authenticate and set your default project.


設定 `gcloud config set project [PROJECT_ID]` 為你的 project,並用你剛剛找到的 Project ID 取代掉 [PROJECT_ID] 。

步驟 3:建立 Artifact Registry Repository
在推送 Docker image 前,需要先建立 Artifact Registry 儲存容器映像檔。
啟用 Artifact Registry:`gcloud services enable artifactregistry.googleapis.com`.

建立新的 repository: `gcloud artifacts repositories create cloud-run-repo –repository-format=docker –location=us-central1`

設定 Docker 驗證:`gcloud auth configure-docker us-central1-docker.pkg.dev`

步驟 4: 撰寫 Cloud Run 使用的 Flask App
建立專案目錄:`mkdir cloud-run-app && cd cloud-run-app`

建立 main.py 並加入以下 Python 內容:
“`
import os
from flask import Flask
app = Flask(__name__)
@app.route(‘/’)
def home():
return “Hello world”
if __name__ == ‘__main__’:
app.run(debug=True, host=’0.0.0.0′, port=int(os.environ.get(‘PORT’, 8080)))
“`

接著建立 requirements.txt
“`
Flask==2.2.2
werkzeug==2.2.2
“`

步驟 5:建立 Dockerfile
在專案目錄中建立 Dockerfile:
“`
FROM python:3.9-slim
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD [“python”, “main.py”]
“`

步驟 6:建置並推送 Docker Image
建置 Docker image(請替換 Project ID):`docker build -t us-central1-docker.pkg.dev/[PROJECT_ID] /cloud-run-repo/cloud-run-app .`

推送 image 至 Artifact Registry:`docker push us-central1-docker.pkg.dev/[PROJECT_ID]/cloud-run-repo/cloud-run-app`

步驟 7:部署至 Cloud Run
使用以下指令部署:`gcloud run deploy cloud-run-app –image us-central1-docker.pkg.dev/[PROJECT_ID]/cloud-run-repo/cloud-run-app –platform managed –region us-central1 –allow-unauthenticated`

- –platform managed:使用 Cloud Run 全代管環境
- –region us-central1:指定部署區域
- –allow-unauthenticated:允許公開存取
部署完成後,Cloud Run 會回傳一個公開 URL,開啟即可測試你的應用。

步驟 8:刪除 Cloud Run Service(不再使用時)
刪除 Cloud Run service:`gcloud run services delete cloud-run-app –region=us-central`.

刪除 Artifact Registry 中的 image:`gcloud artifacts docker images delete us-central1-docker.pkg.dev/ace-memento-453015-d0/cloud-run-repo/cloud-run-app –delete-tags –quiet`

想優化 Cloud Run 成本與效能嗎?
身為 Google Cloud Premier Partner,勤英科技 提供專業的 serverless 架構諮詢、效能調優和安全性增強服務。
🔹 自動擴縮(autoscaling)最佳化,降低 Cloud Run 成本
🔹 結合 Cloud IAM 的資安最佳實踐
🔹 透過快取與網路架構優化效能
📞 立即聯絡雲端顧問,讓你的 Cloud Run 架構更穩、更省!
總結:如何建立安全且可管理的 GCP IAM 架構
恭喜你成功在 Google Cloud Run 上部署了一個 serverless 應用。這種部署模式讓你能專注於應用開發,不需煩惱基礎架構管理。
Cloud Run 能在高流量時自動擴充,在沒有請求時縮到零,兼顧效能與成本,是現代雲端架構中相當高效的選擇。
常見問題(FAQ)
Cloud Run 是什麼?
Cloud Run 是 Google Cloud 提供的全代管運算環境,讓你可以直接部署與擴展 serverless container 化的微服務。
開發者不需要管理伺服器或叢集,只要專注在應用程式本身即可。
Serverless 架構有哪些好處?
Serverless 架構具備自動擴縮、安全執行與高成本效率等優點。
系統會依照實際流量自動調整資源,用不到時甚至可縮到零,讓你專心開發程式,而不用煩惱基礎架構管理。
Cloud Run 和其他平台有什麼不同?
Cloud Run 的最大特色是「真正全代管」。
它大幅簡化了 serverless container 應用的部署與擴展流程,讓你不必自行管理 Kubernetes 或底層運算資源,就能享有彈性擴縮的好處。
要如何開始使用 Cloud Run 建立 Serverless 專案?
要開始使用 Cloud Run,首先需要完成本地開發環境設定。
接著建立一個新的 Cloud Run service,設定映像檔來源與部署參數,即可快速完成 serverless 應用的上線。
