
Browser Rendering API现已向所有付费Workers用户提供,并改进了会话管理功能
我们于2023年5月宣布了Browser Rendering API的开放测试计划。Browser Rendering允许开发人员以编程方式控制无头浏览器实例并与之交互,为其应用程序和产品创建自动化流程。
与此同时,我们还推出了可与Browser Rendering搭配使用的Puppeteer库版本。借助这一版本,开发人员可在Cloudflare Workers之上使用熟悉的API来创建各种工作流,例如页面截图或自动软件测试。
现在,我们将Browser Rendering功能向前推进了一步,结束了测试,并将提供给所有Workers计划的付费用户使用。此外,我们还将强化API,并推出一项在开放测试社区讨论已久的新功能:会话管理。
会话管理
会话管理允许开发人员在Worker的脚本中重复使用之前打开的浏览器。重复使用浏览器会话的优势在于,您无需为每个请求和任务实例化新的浏览器,而这能够显著提升性能并降低成本。
以往,要保持浏览器实例的活动状态并对其进行重复使用,您必须使用Durable Objects实施复杂的代码。如今,我们简化了这一过程,让浏览器在后台运行,并通过新的会话管理方法扩展了Puppeteer API,让您可以访问所有运行中的会话、活动历史和活动限制。
以下是列出活动会话的方法:

我们已将有关如何使用会话管理的Worker脚本示例添加到开发者文档中。
分析和日志
可观察性是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测试者的客户可在此处注册,我们会在功能可用于测试时通知您!
Workers for Platforms按需付费计划
另外,自4月16日起,所有开发人员都可以通过我们新推出的25美元按需付费计划使用Workers for Platforms!
Workers for Platforms正在改变我们构建软件的方式——其让您能够直接在产品中嵌入个性化和定制功能。借助Workers for Platforms,您可以代表用户部署自定义代码,或者让用户直接将其自己的代码部署到您的平台上,而无需您或您的用户管理任何基础设施。您可以将Workers for Platforms与今年Developer Week期间发布的所有令人兴奋的新功能搭配使用——其支持所有与Workers配套的绑定(包括Workers AI、D1和Durable 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包括以下内容:

Workers for Platforms已于2024年4月16日正式发售
自2024年4月16日起,您可以在Cloudflare仪表板的Workers for Platforms选项卡下购买Workers for Platforms。
Cloudflare