Cloudflare Python Workers 正式发布
Cloudflare Python Workers 现已正式发布(GA),使 Python 成为 Cloudflare 开发者平台的一等语言。这允许开发者将 Python 应用程序和库直接部署到边缘,并与 Workers AI、R2、D1、Hyperdrive 和 Durable Objects 等 Cloudflare 服务无缝集成。
与 Cloudflare Bindings 的原生集成
Python Workers 现在原生支持 Cloudflare 开发者平台的 bindings,无需在 RPC 边界手动进行 Python 和 JavaScript 对象之间的类型转换。以前,开发者必须使用胶水代码(例如 Pyodide 中的 to_js)来向 Cloudflare Queues 等服务发送数据。现在,运行时和 Python SDK 封装了这一过程,提供了 Pythonic 接口:
self.env.QUEUE.send({"key": "value"})
支持流行的 Web 框架
开发者现在可以在 Python Workers 中运行标准的 Python Web 框架,包括 FastAPI、Django 和 Flask。这是通过内置的连接器实现的,这些连接器将 Cloudflare Workers 运行时桥接到 Web 服务器网关接口(WSGI)和异步服务器网关接口(ASGI)标准。
- ASGI 支持:
workers.asgi包允许 FastAPI 等异步框架无需单独的 Web 服务器(如 Uvicorn)即可运行。 - WSGI 支持:
workers.wsgi包允许部署 Django 等同步框架。
由于 Cloudflare 全球网络负责负载均衡和扩展,这些连接器充当薄桥,将原生 JavaScript 请求转换为 Python 应用程序期望的标准结构,而无需在 worker 内部运行完整服务器带来的开销。
通过 Hyperdrive 实现数据库连接
Python Workers 现在支持 TCP 套接字,这以前是数据库驱动程序的阻碍。由于 Python Workers 在 WebAssembly(Wasm)沙箱中运行,标准的 POSIX 网络系统调用通常会失败。Cloudflare 使用 Workers connect API 实现了套接字系统调用,将 Python 套接字操作转换为 JavaScript 调用。
这使得可以使用 aiomysql 或 asyncpg 等标准数据库驱动程序通过 Hyperdrive 连接到关系数据库。例如,Python Worker 现在可以通过利用 Hyperdrive binding 获取主机、端口和凭据,使用 aiomysql 执行 SQL 查询。
扩展 Wasm 包生态系统
为了解决具有原生 C/C++/Rust 扩展的包的限制,Cloudflare 提出并帮助标准化了 PEP 783,该标准定义了 PyEmscripten 平台。这允许包维护者为 PyEmscripten 平台构建和发布 wheel,使其在所有实现该平台的环境中可用。
Cloudflare 还稳定了 Pyodide 构建工具链,并在 cibuildwheel 中添加了 PyEmscripten 支持,以简化包维护者采用此标准的过程。
AI 代理和管道开发
Python 的数据科学生态系统使其成为 AI 代理的理想选择。Cloudflare 已确保 requests 和 httpx 等 HTTP 客户端可以在 Wasm 环境中通过 JavaScript fetch API 路由请求。结合新的套接字支持,这允许 openai、langchain 和 mcp 等库在 Python Workers 中原生运行。
开发者可以将这些库与 Workers AI 结合用于无服务器 GPU 推理,或使用 langchain-cloudflare 包在边缘编排 AI 工作流。
社区见解和技术考虑
虽然正式发布标志着一个重要的里程碑,但社区讨论突出了几个技术权衡和架构问题:
- 冷启动性能: 一些开发者对冷启动时间表示担忧。竞争对手(Wasmer)在基准测试中声称,Cloudflare Workers 上的最小 Python 应用程序的启动时间(约 900 毫秒)明显高于他们自己的实现(60 毫秒),尽管这些数字可能已经过时。
- Urllib3 维护:
urllib3的维护者指出,虽然 Cloudflare 为 Pyodide/Emscripten 支持做出了贡献,但长期维护负担落在上游项目上。他们警告说,Emscripten 后端仍被视为实验性的,可能表现出与标准后端不同的网络语义。 - 资源开销: 社区成员建议,基于 Pyodide 的架构可能会比原生 V8 运行时增加内存消耗。
“我很高兴这项工作被贡献到上游,并且对 Pyodide 和 Cloudflare 有用。但我认为,资助上游项目的贡献与资助必须随后支持它的上游维护者之间存在显著差异。”
生产就绪模式
Cloudflare 提供了几个可以使用 Python Workers 构建的示例:
- 异步 AI 编排: 使用 Cloudflare Queues、Workflows 和 Workers AI 的图像到图像生成器。
- 实时流处理: 使用 Durable Objects 维护长期状态的 Bluesky Jetstream 的 WebSocket 消费者。
- MCP 服务器: 使用官方 Python MCP 包部署模型上下文协议服务器。
- RAG 系统: 使用 Workers AI 和 Vectorize 构建检索增强生成系统。
SUMMARY: Cloudflare 宣布 Python Workers 正式发布,使开发者能够使用 Wasm 编译的 Python 解释器在其全球边缘网络上运行 Python 应用程序,包括 FastAPI、Django 和 Flask。
TITLE: Cloudflare Python Workers 正式发布
Sources
相关
- Dispatch
- 项目
- Dispatch
- Dispatch
- Dispatch