Python Workers 重現:快速啟動、套件支持與優化工作流程
2025-12-08
作者:Dominik Picheta, Hood Chatham, Mike Nomitch
閱讀時間:約 9 分鐘
去年,我們宣布了對 Python Workers 的基本支持,這使得 Python 開發者能夠透過單一命令將 Python 部署到全球各地,並利用 Workers 平台的強大功能。從那時起,我們一直在努力提升 Python 在 Workers 平台上的體驗,特別是在套件支持方面。我們現已實現快速冷啟動和原生 Python 開發者體驗。
全面套件支持
在 Python Workers 上整合套件的方式有所改變。我們不再僅提供有限的內建套件支持,而是支持 Pyodide 支持的所有套件。Pyodide 是支援 Python Workers 的 WebAssembly 執行環境,涵蓋了所有純 Python 套件及許多依賴動態庫的套件。我們還構建了專用的工具來輔助套件安裝,讓過程更加簡便。
快速冷啟動
我們還實現了專用的記憶體快照,以縮短冷啟動時間。這些快照使得 Python Workers 在冷啟動測試中表現出色,比 AWS Lambda 快 2.4 倍,比 Google Cloud Run 快 3 倍。
全球部署僅需 2 分鐘
Workers 平台的魅力之一在於其簡單的代碼和便捷的全球部署。以下範例展示如何在不到兩分鐘內部署 FastAPI 應用,並實現快速冷啟動:
from fastapi import FastAPI
from workers import WorkerEntrypoint
import asgi
app = FastAPI()
@app.get("/")
async def root():
return {"message": "This is FastAPI on Workers"}
class Default(WorkerEntrypoint):
async def fetch(self, request):
return await asgi.fetch(app, request.js_object, self.env)
只需安裝 uv 和 npm,然後運行以下命令即可部署:
$ uv tool install workers-py
$ pywrangler init --template https://github.com/cloudflare/python-workers-examples/03-fastapi
$ pywrangler deploy
使用簡單的代碼和 pywrangler deploy,您已將應用部署到遍布 125 個國家、330 個地點的 Cloudflare 邊緣網絡上,無需擔心基礎設施或擴展問題。
Python Workers 的應用
擁有 Worker 後,您幾乎可以實現任何想法。Python Worker 能接收 HTTP 請求並向公共互聯網上的任何伺服器發出請求。您可以設置定時觸發器,讓 Worker 定期運行。若有更複雜的需求,可以利用 Python Workers 的工作流,甚至使用 Durable Objects 構建長時間運行的 WebSocket 伺服器和客戶端。
更多應用範例
- 使用 Jinja 等庫在邊緣渲染 HTML 模板,並直接從伺服器獲取動態內容。
- 修改伺服器響應,例如根據請求內容動態注入 opengraph 標籤到 HTML 中。
- 使用 Durable Objects 創建聊天室等。
欲了解更多範例,請查看 GitHub 上的 repo 並深入了解 Python Workers 的更多功能。