订阅以接收新文章的通知:

Browser Rendering API GA,推出 Cloudflare Snippets 、SWR,并向所有用户提供 Workers for Platforms

2024-04-05

5 分钟阅读时间
这篇博文也有 EnglishFrançaisDeutsch日本語한국어Español繁體中文版本。

Browser Rendering API 现已向所有付费 Workers 客户提供,并改进了会话管理功能

Browser Rendering API GA, rolling out Cloudflare Snippets, SWR, and bringing Workers for Platforms to our PAYGO plans

我们于 2023 年 5 月宣布了Browser Rendering API 的开放测试计划。Browser Rendering 允许开发人员以编程方式控制无头浏览器实例并与之交互,为其应用程序和产品创建自动化流程。

与此同时,我们还推出了可与 Browser Rendering 搭配使用的Puppeteer 库版本。借助这一版本,开发人员可在 Cloudflare Workers 之上使用熟悉的 API 来创建各种工作流,例如页面截图或自动软件测试。

今天,我们将 Browser Rendering 功能向前推进了一步,结束了测试,并将提供给所有 Workers 计划的付费用户使用。此外,我们还将强化 API,并推出一项在开放测试社区讨论已久的新功能:会话管理。

会话管理

会话管理允许开发人员在 Worker 的脚本中重复使用之前打开的浏览器。重复使用浏览器会话的优势在于,您无需为每个请求和任务实例化新的浏览器,而这能够显著提升性能并降低成本。

以往,要保持浏览器实例的活动状态并对其进行重复使用,您必须使用 Durable Objects 实施复杂的代码。如今,我们简化了这一过程,让浏览器在后台运行,并通过新的 会话管理方法扩展了 Puppeteer API ,让您可以访问所有运行中的会话、活动历史和活动限制。

以下是列出活动会话的方法:

我们已将有关如何使用会话管理的 Worker 脚本示例添加到开发者文档中

const sessions = await puppeteer.sessions(env.RENDERING);
console.log(sessions);
[
   {
      "connectionId": "2a2246fa-e234-4dc1-8433-87e6cee80145",
      "connectionStartTime": 1711621704607,
      "sessionId": "478f4d7d-e943-40f6-a414-837d3736a1dc",
      "startTime": 1711621703708
   },
   {
      "sessionId": "565e05fb-4d2a-402b-869b-5b65b1381db7",
      "startTime": 1711621703808
   }
]

分析和日志

可观察性是 Cloudflare 产品的重要组成部分。您可以在仪表板中的账户 Worker & Pages 部分找到Browser Rendering 使用情况的详细分析和日志。

Browser Rendering 功能现已向所有已付费的 Workers 计划客户开放。 在此期间,每个账户每分钟仅限免费运行两个新浏览器和两个并发浏览器。请查看我们的开发人员页面,以便开始使用。

我们正在推出针对 Cloudflare Snippets 的访问

Snippets 功能强大、可编程且免费,是在 Cloudflare 上执行复杂 HTTP 请求和响应修改的最佳方式。以往使用 Rules 产品难以实现的功能如今可通过Snippets实现。自 Developer Week 2022 首次宣布以来,通过编写简单的 JavaScript 代码即可扩展开箱即用的 Rules 功能的承诺,让社区兴奋不已。

仅在 2024 年的前 3 个月,通过 Snippets 处理的流量就增加了 7 倍多,从 1 月初的平均每秒 2200 次请求增加到 3 月份的逾 17000 次请求。

但我们不会一次性放开所有限制,让数百万 Cloudflare 用户以最意想不到的方式来进行测试(并可能破坏)Snippets,而是采取分阶段推出的方式,就像新发布的Workers的逐步推出策略

在接下来的几周内,5% 的 Cloudflare 用户将开始在其仪表板中区域级菜单的规则选项卡下看到 "Snippets"。如果您恰好是前 5%的用户,请即刻行动,试试Snippets的速度和强大功能, 例如动态更改标题中的日期或利用 `math.random` 函数进行 A / B 测试。无论您如何使用Snippets,请牢记一点:这仍是一个 Alpha 版,因此暂时请不要将 Snippets 用于生产流量。

在此之前,请留意 Cloudflare 仪表板中的新 Snippets 选项卡,并同时查阅开发者文档, 了解Snippets 的强大功能和灵活性。

即将推出:利用 stale-while-revalidate 进行异步重新验证

客户要求最多的功能之一是带有 stale-while-revalidate (SWR) 缓存指令的异步重验证,我们将于 2024 年下半年为您带来这一功能。该功能将作为将作为我们基于 Rust 构建的全新CDN架构设计的一部分,注重性能和内存安全。

目前,当客户端请求资源(如网页或图片)时,Cloudflare 会检查资产是否在缓存中,并在缓存副本可用时提供缓存副本。若文件不在缓存中,或已过期并成为过期文件,则 Cloudflare 会连接到源服务器,检查文件的最新版本,并将新版本转发给最终用户。这种等待时间会导致这些请求的延迟增加,从而影响性能。

作为一种缓存指令,Stale-while-revalidate 允许在向最终用户提供已过期或陈旧版本的资源的同时,由 Cloudflare 检查源以查看是否有更新版本的资源可用。如果存在更新版本,则源会将其转发给 Cloudflare,并在此过程中更新缓存。这种机制允许客户端从缓存中快速接收响应,同时确保其始终可以访问最新的内容。Stale-while-revalidate 在高效提供内容和确保内容的新鲜度之间取得了平衡,从而提高了性能,使用户体验更加流畅。

想成为我们的 Beta 测试者并“享受”乐趣的客户可在 此处注册 ,我们会在功能可用于测试时通知您!

即将于 2024 年 4 月 16 日发布:Workers for Platforms 按需付费计划

我们于今日欣然宣布,4 月 16 日,所有开发人员都可以通过我们新推出的 25 美元按需付费计划使用 Workers for Platforms!

Workers for Platforms 正在改变我们构建软件的方式——其让您能够直接在产品中嵌入个性化和定制功能。借助 Workers for Platforms,您可以代表用户部署自定义代码,或者让用户直接将其自己的代码部署到您的平台上,而无需您或您的用户管理任何基础设施。您可以将 Workers for Platforms 与本次 Developer Week 中发布的所有令人兴奋的新功能搭配使用——其支持所有与 Workers 配套的绑定(包括Workers AID1Durable Objects)以及 PythonWorkers

以下是我们的一些客户(从企业到初创公司)在 Workers for Platforms 上的构建情况:

  • Shopify Oxygen 是其基于 Remix 的电子商务框架 Hydrogen 托管平台,它基于 Workers for Platforms 构建!Hydrogen/Oxygen 组合让 Shopify商家能够自由掌控其购买体验,摆脱了通用商店模板的束缚。

  • 作为一个数据平台,Grafbase供开发人员创建无服务器 GraphQL API,将整个业务的数据源统一到一个端点下。其使用 Workers for Platforms 为开发人员提供控制和灵活性,以部署自己用 JavaScript/TypeScript 或 WASM 编写的代码。

  • 作为一个开源数据库,Triplit可在服务器和浏览器之间实时同步数据。它允许用户构建低延迟、实时的应用程序,具有关系查询、模式管理和内置服务器端存储等功能。其查询和同步引擎基于 Durable Objects 构建,并使用 Workers for Platforms,让客户能够将自定义 JavaScript 打包到 Triplit DB 实例中。

可观测性和平台级控制

Workers for Platforms 在允许您将 Workers 部署到您平台上的同时,还让我们知晓针对用户的 Workers 的可观测性和控制有多么重要。我们有若干解决方案可以帮助应对该情况:

  • 自定义限制:在用户的Workers 上设置 CPU 时间或子请求限制。这可以用来设定限制,以便控制在Cloudflare上的成本,或者设计自己的定价和打包模式。例如,如果您在平台上采用免费增值模式,则可以降低免费用户的 CPU 时间限制。

  • Tail Workers Tail Workers 事件包含有关Worker 的元数据、console.log() 消息,并能够捕获任何未处理的异常。其可以用于为开发人员提供实时日志,以便实时监控错误并进行故障排除。

  • Outbound Workers:获得对用户Workers发出的所有外部请求的可见性。Outbound Workers 位于用户 Workers和其发出的 fetch()请求之间,因此您可以在请求发送到互联网之前全面了解请求。

定价

我们希望确保业余爱好者、个人开发者和独立开发者都能负担得起 Workers for Platforms 的价格。作为全新 25 美元按需付费计划的一部分,Workers for Platforms 包括以下内容:

.tg {border-collapse:collapse;border-color:#ccc;border-spacing:0;} .tg td{background-color:#fff;border-color:#ccc;border-style:solid;border-width:1px;color:#333; font-family:Arial, sans-serif;font-size:14px;overflow:hidden;padding:10px 5px;word-break:normal;} .tg th{background-color:#f0f0f0;border-color:#ccc;border-style:solid;border-width:1px;color:#333; font-family:Arial, sans-serif;font-size:14px;font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;} .tg .tg-buh4{background-color:#f9f9f9;text-align:left;vertical-align:top} .tg .tg-0lax{text-align:left;vertical-align:top}

Included Amounts
Requests 20 million requests/month
+$0.30 per additional million
CPU time 60 million CPU milliseconds/month
+$0.02 per additional million CPU milliseconds
Scripts 1000 scripts
+0.02 per additional script/month

包含的金额

请求

每月 2000 万次请求+ 0.30 美元/每增加 100 万

CPU 时间

每月 6000 万 CPU 毫秒CPU 毫秒每增加 100 万 +0.02 美元

脚本

1000 个脚本每增加一个额外脚本每月 +0.02

Workers for Platforms 将于 2024 年 4 月 16 日正式发售!

2024 年 4 月 16 日起,您可以在 Cloudflare 仪表板的 Workers for Platforms 选项卡下购买 Workers for Platforms。

同时,欲了解有关 Workers for Platforms 的更多信息,请查阅我们的启动项目开发人员文档

我们保护整个企业网络,帮助客户高效构建互联网规模的应用程序,加速任何网站或互联网应用程序抵御 DDoS 攻击,防止黑客入侵,并能协助您实现 Zero Trust 的过程

从任何设备访问 1.1.1.1,以开始使用我们的免费应用程序,帮助您更快、更安全地访问互联网。要进一步了解我们帮助构建更美好互联网的使命,请从这里开始。如果您正在寻找新的职业方向,请查看我们的空缺职位
Developer Week开发人员Developer PlatformApplication Services产品新闻General AvailabilityCloudflare Workers

在 X 上关注

Tanushree Sharma|@_tanushreeeee
Celso Martinho|@celso
Matt Bullock|@mibullock
Cloudflare|@cloudflare

相关帖子