Serverless App 怎麼上線?Cloud Run 部署教學
Serverless App 怎麼上線?Cloud Run 部署教學

本文將帶你一步步了解,如何在 Google Cloud Run 上快速部署一個 Serverless 應用程式。透過實際操作流程,協助你完成順暢、可重現的 Cloud Run 部署體驗。

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

前往 Google Cloud Console.

Google Cloud Console

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

建立一個新 project

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

啟用 Cloud Run API

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

複製 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`

安裝 Google Cloud SDK

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

解壓縮檔案

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

前往 Google Cloud SDK dir

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

安裝 Google Cloud SDK

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

確認安裝 google cloud SDK

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

初始化 Google Cloud SDK
允許 SDK 存取權

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

在 SDK 中設定 project

步驟 3:建立 Artifact Registry Repository

在推送 Docker image 前,需要先建立 Artifact Registry 儲存容器映像檔。

啟用 Artifact Registry:`gcloud services enable artifactregistry.googleapis.com`.

啟用 google Artifact Registry

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

啟用 Artifact Registry

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

驗證 google auth

步驟 4: 撰寫 Cloud Run 使用的 Flask App

建立專案目錄:`mkdir cloud-run-app && cd cloud-run-app`

建立 dirs

建立 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)))
“`

寫一個簡單的 Flask App

接著建立 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”]

“`

建立 DockerFile

步驟 6:建置並推送 Docker Image

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

間治並推送 image 到 Google Cloud Docker

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

推送 image 至 docker

步驟 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`

部署 app 至 cloud run
  • –platform managed:使用 Cloud Run 全代管環境
  • –region us-central1:指定部署區域
  • –allow-unauthenticated:允許公開存取

部署完成後,Cloud Run 會回傳一個公開 URL,開啟即可測試你的應用。

成功部署到 cloud run

步驟 8:刪除 Cloud Run Service(不再使用時)

刪除 Cloud Run service:`gcloud run services delete cloud-run-app –region=us-central`.

刪除 Cloud run service

刪除 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`

刪除 google cloud artifact

想優化 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 應用的上線。

author avatar
Golam Rabbany
Cloud Run