Vercel宣布Python支持正式可用,并为Functions提供容器支持,以容纳自定义运行时和系统库。新推出的Daemons进入公开测试,面向主动拉取任务、在任务间保持运行的后台工作进程。
去年,我们扩展了对 Python 和 TypeScript 后端框架的零配置支持。到今年夏天,开发者已经可以通过 Vercel Services 将前端和后端一起部署,并通过队列和持久化工作流协调后台任务。
今天,在旧金山举办的 Vercel Ship 上,我们进一步扩展了 Vercel 能够运行的后端工作负载。Vercel 上的 Python 支持现已正式可用;Vercel Functions 新增容器支持,可以使用自定义运行时和系统库;同时,我们推出了进入 Public Beta 阶段的 Vercel Daemons,让后台 worker 能够主动拉取任务,并在任务之间持续运行。
你可以用 Python 构建后端,同时享用你在前端开发中已经熟悉的 Vercel 基础设施和开发体验,包括本地开发、预览和生产部署。FastAPI、Flask 和 Django 等框架运行在标准 CPython 上,可以使用你的 PyPI 依赖,而框架检测、构建和扩缩容都由 Vercel 处理。
目前,已有 150,000 个团队在 Vercel 上运行 Python 后端,其中包括 OpenAI、Polymarket 和 Exa 的工程师。
通过 Python SDK,你可以在应用中使用 Vercel 的各项产品:用 Vercel Blob 存储文件,用 Vercel Queues 提交后台任务,用 Vercel Workflows 协调需要持久化执行的步骤,用 Vercel Sandbox 运行不可信代码,或者通过 AI SDK for Python 流式传输模型响应并处理工具调用。
Delphi 根据书籍和演讲构建 AI 数字心智,已将 Python 后端从 AWS ECS 迁移到 Vercel。这个团队只有十名工程师,没有专职的基础设施人员,却每天向生产环境发布超过 100 次,并使用 Queues 处理后台任务。
有关框架的详细信息和示例,请参阅 Python 知识库。
Vercel 容器运行时支持部署以任意语言编写的应用,并将应用所需的操作系统库和可执行文件一起打包。自容器支持进入 Public Beta 以来,已有 5,000 个团队在 Vercel 上完成了 150,000 次容器部署。
容器以 Vercel Functions 的形式部署在 Fluid compute 上,随流量自动扩缩容,并采用 Active CPU 计费:等待 API 响应、数据库查询或 LLM 推理结果期间的空闲时间不收费。Vercel Services 让你可以同时开发和部署前后端;Vercel CDN 通过你的域名承接流量,Vercel WAF 提供防护,日志帮助你排查问题,回滚功能则可以恢复到之前的部署版本。
以一个使用容器进行后台处理的视频应用为例:每上传一段视频,应用都会为它生成用于播放的副本和缩略图。下面的 Dockerfile 将 Python 处理程序、依赖和 ffmpeg 打包到一起,交给 Daemons 运行:
1FROM python:3.12-slim2RUN apt-get update \3 && apt-get install -y --no-install-recommends ffmpeg \4 && rm -rf /var/lib/apt/lists/*5WORKDIR /app6COPY requirements.txt .7RUN pip install --no-cache-dir -r requirements.txt8COPY processor.py .9CMD ["python", "processor.py"]
将 Python 视频处理程序和 ffmpeg 打包到同一个镜像中。
通过 Git 或 Vercel CLI 部署时,Vercel 会构建镜像,并将其存储在你的 Vercel Container Registry 中。请阅读容器化 Functions 部署指南,开始使用。
Vercel Daemons 让你可以将容器部署为在 Fluid compute 上持续运行的后台 worker。你可以指定每个区域的实例数量,Vercel 会在进程退出或崩溃时重新启动它们,以维持设定的运行容量。
Daemons 首发支持拉取式工作负载:你的代码向其他系统请求任务,并在任务可用时进行处理。例如,消费队列消息,或从数据库获取待处理任务。
在我们的示例中,Daemons 会持续运行视频处理程序,从 Vercel Queues 拉取任务。在 vercel.toml 中定义 Next.js 前端,将请求路由到前端,再通过 Dockerfile 添加处理程序:
1#:schema https://openapi.vercel.sh/vercel.json2
3[services.frontend]4framework = "nextjs"5root = "."6
7[[routes]]8src = "/(.*)"9destination.service = "frontend"10
11[daemons.videos]12root = "."13entrypoint = "Dockerfile"14instances.iad1 = 1
在 iad1(华盛顿特区)保持一个视频处理程序实例运行。
按照 Daemons 部署指南,为你的 Vercel 项目添加后台 worker。
我们会继续投入后端支持,让你现有应用中的更多部分都能在 Vercel 上运行,并使用它们所需的语言、依赖和执行模式。
阅读知识库中的后端指南
阅读知识库中的后端指南
阅读 Vercel Daemons 完整指南
阅读 Vercel Daemons 完整指南
一键部署使用 Python 的 eve Agent
一键部署使用 Python 的 eve Agent