最近,Vercel 宣布了Edge Functions的普遍可用性,它们是 JavaScript、TypeScript 或 WebAssembly 函数。据该公司称,这些功能通常比传统的无服务器功能更便宜、更快。
早些时候,该公司将 Edge Functions 作为公开测试版发布,并通过将部署的功能放置到特定区域来提高性能。此外,它还添加了其他功能,例如支持 WebAssembly和函数响应的缓存控制标准以及表达区域偏好的能力。
默认情况下,Edge Functions 在最接近请求的区域中运行,以获得尽可能低的延迟。此外,这些函数在缓存之后运行,因此可以缓存和返回响应。Next.js 和许多其他框架(如Nuxt、Astro和SvelteKit)本身就支持 Edge Functions。然而,开发人员也可以使用Vercel CLI创建一个独立的函数。
在底层,Edge Functions 使用 Vercel 的Edge Runtime,它建立在 Chrome 浏览器使用的V8 引擎之上,并且不在 MicroVM 中运行。V8 引擎的好处是 Edge Functions 在隔离的环境中运行,不需要 VM 或容器。它限制了运行时但保持轻量级,并且比Vercel 无服务器函数需要更少的资源,有效地消除了冷启动时间并使其更具成本效益。
未来,公司将通过提高 Edge Functions 和 Serverless Functions 之间的兼容性,继续改进其计算产品、Edge Functions 和 Serverless Functions。在博客文章中,该公司表示:我们的目标是让 Edge Runtime 成为 Node.js API 的适当子集。我们希望用户能够根据性能和成本特征而不是 API 选择他们的执行环境。
Vercel 的首席技术官Malte Ubl告诉 InfoQ:
借助 Vercel Edge Functions,我们可以在全球范围内无缝部署功能。我们的最新产品将在边缘构建高性能 Web 体验方面带来前所未有的改进,这对终端用户至关重要,无论他们身在何处或使用何种设备。
Vercel 提供的 Edge Functions 将与Cloudflare Workers等其他产品竞争,后者具有 0 毫秒的初始化时间(即没有“冷启动”)并在边缘运行(即在靠近用户的数据中心)。
Vercel 的高级软件工程师Ethan Arrowood在推特上回应是否选择 Cloudflare Workers 而不是 Edge Functions:对我来说,最大的附加值是它与现有的 Vercel 项目部署无缝集成。
最后,Edge Functions 以每次调用 50 毫秒 CPU 时间为单位计费,称为执行单元。有兴趣试用 Edge Function 的开发者可以通过爱好计划每月获得 500,000 个单位。相比之下,专业和企业团队每月免费提供 100 万个 Edge Function 执行单元,并且可以增加额外的使用量。关于作者,Steef-Jan Wiggers 是 InfoQ 的高级云编辑之一,在荷兰的 HSO 担任技术集成架构师。他目前的技术专长侧重于集成平台实施、Azure......。