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 脚本示例添加到开发者文档中。
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 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 包括以下内容:
.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。