Cloud Run Functions 三種實作
GCP
課程概述
Cloud Run Functions(前身為 Cloud Functions)是 GCP 的函式即服務(FaaS)方案。你不用管伺服器,只要寫一個函式,它就會在事件發生時跑起來。這堂課我們會實作三種最常見的觸發模式。
你將學到
- 建立 HTTP 觸發的 Cloud Run Function
- 建立 Cloud Storage 事件觸發的函式
- 建立 Pub/Sub 訊息觸發的函式
- 理解第一代與第二代 Cloud Functions 的差異
核心概念
三種觸發模式
1. HTTP 觸發 — 透過 HTTP 請求呼叫
import functions_framework
@functions_framework.http
def hello(request):
name = request.args.get('name', 'World')
return f'Hello, {name}!'
2. Cloud Storage 觸發 — 檔案上傳/刪除時執行
@functions_framework.cloud_event
def process_file(cloud_event):
data = cloud_event.data
bucket = data["bucket"]
name = data["name"]
print(f"Processing file: gs://{bucket}/{name}")
3. Pub/Sub 觸發 — 收到訊息時執行
import base64
@functions_framework.cloud_event
def process_message(cloud_event):
data = base64.b64decode(cloud_event.data["message"]["data"]).decode()
print(f"Received message: {data}")
第一代 vs 第二代
| 特性 | 第一代 | 第二代(建議使用) |
|---|---|---|
| 底層 | 專屬基礎設施 | Cloud Run |
| 並發 | 1 請求/實例 | 最高 1000 請求/實例 |
| 最長執行 | 9 分鐘 | 60 分鐘(HTTP 觸發)/9 分鐘(事件驅動) |
| 記憶體上限 | 8 GB | 32 GB |
| 流量分配 | 不支援 | 支援 |
實作重點
- 第二代 Functions 底層是 Cloud Run,效能跟彈性都比第一代好很多
- 部署時記得指定
--runtime和--entry-point - 使用
--allow-unauthenticated才能公開 HTTP 端點 - 本地測試可用 Functions Framework:
functions-framework --target=hello
Skill Badge 指引
Lab 連結:Cloud Run Functions: 3 Ways — 完成此 lab 可獲得 Skill Badge
延伸學習
- 進階:Cloud Run 無伺服器開發
- GenAI 應用:建構 GenAI 應用
Study Jam:雲端基礎實作 — 6/10 完成
查看系列全覽 →