觀點 · 資訊分享

Cloudflare Python Workers 正式上線:FastAPI、Django 直接跑在全球邊緣,還能連 MySQL

Cloudflare 宣布 Python Workers 正式版(GA):Python 成為 Workers 平台的一等公民,FastAPI、Django、Flask 可以直接部署,透過 Hyperdrive 連 PostgreSQL、MySQL,openai、langchain 這類 AI 套件也能用了。

發布
2026-09-21
篇幅
約 4 分鐘 · 1,880 字
結構
7 節 + 3 題常見問題
標籤
#Cloudflare#Workers#Python#Serverless#FastAPI
Cloudflare Python Workers 正式上線:FastAPI、Django 直接跑在全球邊緣,還能連 MySQL

一句話看懂:Cloudflare 的 Python Workers 正式上線,用 Python 寫的 API(FastAPI、Django、Flask)可以直接部署到全球網路,不用自己顧主機。

Cloudflare Python Workers 正式版資訊圖卡:FastAPI、Django 不用自己架主機,寫好就部署到全球網路

先用白話講:Cloudflare Workers 是什麼?

想像你開了一家只賣外帶的小吃店。傳統做法是自己租店面、請人顧店,就算半夜沒客人也要付租金。

Cloudflare Workers 比較像是把你的食譜交給遍布全世界的連鎖廚房:有客人點餐,離客人最近的那間廚房就照你的食譜做一份,沒人點就不用付錢、也不用管廚房。這種模式叫 無伺服器(Serverless)。

以前這些廚房主要只看得懂 JavaScript/TypeScript 寫的食譜,Python 雖然兩年前就能用,但一直是測試階段。現在 Python 正式成為一等公民。

發生什麼事

Cloudflare 在 9 月 21 日宣布 Python Workers 正式推出(GA),重點包括:

  • 原生支援平台綁定:Workers AI、R2、D1、Hyperdrive、Durable Objects、Queues、Workflows 等,都能用 Python 的寫法直接呼叫
  • 支援主流框架:FastAPI、Django、Flask 可以直接跑
  • 能連資料庫:透過 Hyperdrive 連 PostgreSQL、MySQL
  • AI 套件可用:openai、langchain、mcp 等套件可以原生執行
  • 開發者文件裡,幾乎所有 TypeScript 範例都補上了 Python 版本

跟以前比差在哪?

類別 以前 正式版
呼叫平台服務 要用 to_js 手動轉成 JavaScript 物件 直接傳 Python 字典
網頁框架 需要自己處理 內建 ASGI/WSGI 轉接器
資料庫 沒有 TCP socket,驅動程式無法連線 自製 socket 系統呼叫,可透過 Hyperdrive 連線
HTTP 用戶端 requests、httpx 常常出問題 已向上游貢獻修正,可透過 fetch 運作

給開發者的技術細節

把既有的 FastAPI 應用交給 Workers 執行,只要加一個進入點:

from fastapi import FastAPI
from workers import asgi

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello, world!"}

Default = asgi.entrypoint(app)
  • 依官方文件,本機開發與部署用 pywrangler(需先裝 uv 與 Node):uv run pywrangler dev 本機執行、uv run pywrangler deploy 部署
  • 同步框架(如 Django)改用 workers.wsgi
  • 平台本身就是網頁伺服器,不需要 uvicorn、gunicorn
  • Python Workers 底層是 Pyodide(編譯成 WebAssembly 的 Python 直譯器)
  • 含 C/C++/Rust 原生擴充的套件,必須編譯成 WebAssembly 版本。Cloudflare 提出的 PEP 783(PyEmscripten 平台)已被接受,cibuildwheel 也加入支援,但生態系仍在跟進
  • 官方說接下來會繼續改善效能與記憶體用量

我的看法

很多接案的小功能,例如表單收件、LINE 通知轉發、簡單的 AI 問答 API,用 Python 寫最順手,但為了這點東西開一台主機又要顧更新、顧安全。Python Workers 正式化之後,這類小型 API 多了一個「寫完就上線、沒流量不花錢」的選擇。

不過我會先把它當成「輕量 API」的工具,而不是把整個 Django 大專案搬上去。它跑在 WebAssembly 沙箱裡,有些依賴原生擴充的套件還不能用,記憶體與效能官方也說還在改善。正式採用前,先把專案的套件清單拿去測一輪最保險。

名詞小辭典

  • 無伺服器(Serverless):不用自己管主機,有請求才執行、依用量計費的雲端運算方式。
  • WebAssembly(Wasm):一種能在瀏覽器和沙箱裡高速執行的程式格式,讓 Python 能跑在 Workers 上。
  • ASGI/WSGI:Python 網頁應用和網頁伺服器之間的標準介面,非同步版本叫 ASGI。
  • Hyperdrive:Cloudflare 幫 Workers 連接既有資料庫、並加速連線的服務。

資料來源

常見問題

我的 FastAPI 專案要改很多嗎?
官方示範只要加一行 Default = asgi.entrypoint(app),就能把原本用 uvicorn 啟動的 FastAPI 應用交給 Workers 執行,不用再自己跑網頁伺服器。實際上還是要確認專案用到的套件都能在 WebAssembly 環境運作。
為什麼有些 Python 套件不能用?
Python Workers 跑在 WebAssembly 沙箱裡,帶有 C、C++ 或 Rust 原生擴充的套件,必須先編譯成 WebAssembly 版本。Cloudflare 推動的 PEP 783 已被接受,讓套件作者可以發布這種版本,但生態系還在跟進中。
可以連自己的 MySQL 資料庫嗎?
可以,透過 Cloudflare Hyperdrive。先把資料庫接上 Hyperdrive、在 Wrangler 設定綁定,再用 aiomysql 這類熟悉的驅動程式連線。支援哪些套件,以 Hyperdrive 的 Python Workers 文件為準。
LINE