Browser Rendering API現(xiàn)已向所有付費(fèi)Workers用戶提供,并改進(jìn)了會(huì)話管理功能
我們于2023年5月宣布了Browser Rendering API的開放測(cè)試計(jì)劃。Browser Rendering允許開發(fā)人員以編程方式控制無(wú)頭瀏覽器實(shí)例并與之交互,為其應(yīng)用程序和產(chǎn)品創(chuàng)建自動(dòng)化流程。
與此同時(shí),我們還推出了可與Browser Rendering搭配使用的Puppeteer庫(kù)版本。借助這一版本,開發(fā)人員可在Cloudflare Workers之上使用熟悉的API來(lái)創(chuàng)建各種工作流,例如頁(yè)面截圖或自動(dòng)軟件測(cè)試。
現(xiàn)在,我們將Browser Rendering功能向前推進(jìn)了一步,結(jié)束了測(cè)試,并將提供給所有Workers計(jì)劃的付費(fèi)用戶使用。此外,我們還將強(qiáng)化API,并推出一項(xiàng)在開放測(cè)試社區(qū)討論已久的新功能:會(huì)話管理。
會(huì)話管理
會(huì)話管理允許開發(fā)人員在Worker的腳本中重復(fù)使用之前打開的瀏覽器。重復(fù)使用瀏覽器會(huì)話的優(yōu)勢(shì)在于,您無(wú)需為每個(gè)請(qǐng)求和任務(wù)實(shí)例化新的瀏覽器,而這能夠顯著提升性能并降低成本。
以往,要保持瀏覽器實(shí)例的活動(dòng)狀態(tài)并對(duì)其進(jìn)行重復(fù)使用,您必須使用Durable Objects實(shí)施復(fù)雜的代碼。如今,我們簡(jiǎn)化了這一過(guò)程,讓瀏覽器在后臺(tái)運(yùn)行,并通過(guò)新的會(huì)話管理方法擴(kuò)展了Puppeteer API,讓您可以訪問(wèn)所有運(yùn)行中的會(huì)話、活動(dòng)歷史和活動(dòng)限制。
以下是列出活動(dòng)會(huì)話的方法:
我們已將有關(guān)如何使用會(huì)話管理的Worker腳本示例添加到開發(fā)者文檔中。
分析和日志
可觀察性是Cloudflare產(chǎn)品的重要組成部分。您可以在儀表板中的賬戶Worker&Pages部分找到Browser Rendering使用情況的詳細(xì)分析和日志。
Browser Rendering功能現(xiàn)已向所有已付費(fèi)的Workers計(jì)劃用戶開放。在此期間,每個(gè)賬戶每分鐘僅限免費(fèi)運(yùn)行兩個(gè)新瀏覽器和兩個(gè)并發(fā)瀏覽器。請(qǐng)查看我們的開發(fā)人員頁(yè)面,以便開始使用。
我們正在推出針對(duì)Cloudflare Snippets的訪問(wèn)
Snippets功能強(qiáng)大、可編程且免費(fèi),是在Cloudflare上執(zhí)行復(fù)雜HTTP請(qǐng)求和響應(yīng)修改的最佳方式。以往使用Rules產(chǎn)品難以實(shí)現(xiàn)的功能如今可通過(guò)Snippets實(shí)現(xiàn)。自Developer Week 2022首次宣布以來(lái),通過(guò)編寫簡(jiǎn)單的JavaScript代碼即可擴(kuò)展開箱即用的Rules功能的承諾,讓社區(qū)興奮不已。
僅在2024年的前3個(gè)月,通過(guò)Snippets處理的流量就增加了7倍多,從1月初的平均每秒2200次請(qǐng)求增加到3月份的逾17000次請(qǐng)求。
但我們不會(huì)一次性放開所有限制,讓數(shù)百萬(wàn)Cloudflare用戶以最意想不到的方式來(lái)進(jìn)行測(cè)試(并可能破壞)Snippets,而是采取分階段推出的方式,就像新發(fā)布的Workers的逐步推出策略。
在接下來(lái)的一段時(shí)間內(nèi),5%的Cloudflare用戶將可以開始在其儀表板中區(qū)域級(jí)菜單的規(guī)則選項(xiàng)卡下看到"Snippets"。如果您恰好是前5%的用戶,請(qǐng)即刻行動(dòng),試試Snippets的速度和強(qiáng)大功能,例如動(dòng)態(tài)更改標(biāo)題中的日期或利用`math.random`函數(shù)進(jìn)行A/B測(cè)試。無(wú)論您如何使用Snippets,請(qǐng)牢記一點(diǎn):這仍是一個(gè)Alpha版本,因此暫時(shí)請(qǐng)不要將Snippets用于生產(chǎn)流量。
在此之前,請(qǐng)留意Cloudflare儀表板中的新Snippets選項(xiàng)卡,并同時(shí)查閱開發(fā)者文檔,了解Snippets的強(qiáng)大功能和靈活性。
即將推出:利用stale-while-revalidate進(jìn)行異步重新驗(yàn)證
客戶要求最多的功能之一是帶有stale-while-revalidate(SWR)緩存指令的異步重新驗(yàn)證,我們將于2024年下半年為您帶來(lái)這一功能。該功能將作為我們基于Rust構(gòu)建的全新CDN架構(gòu)設(shè)計(jì)的一部分,注重性能和內(nèi)存安全。
目前,當(dāng)客戶端請(qǐng)求資源(如網(wǎng)頁(yè)或圖片)時(shí),Cloudflare會(huì)檢查資產(chǎn)是否在緩存中,并在緩存副本可用時(shí)提供緩存副本。若文件不在緩存中,或已過(guò)期并成為過(guò)期文件,則Cloudflare會(huì)連接到源服務(wù)器,檢查文件的最新版本,并將新版本轉(zhuǎn)發(fā)給最終用戶。這種等待時(shí)間會(huì)導(dǎo)致這些請(qǐng)求的延遲增加,從而影響性能。
作為一種緩存指令,Stale-while-revalidate允許在向最終用戶提供已過(guò)期或陳舊版本的資源的同時(shí),由Cloudflare檢查源以查看是否有更新版本的資源可用。如果存在更新版本,則源會(huì)將其轉(zhuǎn)發(fā)給Cloudflare,并在此過(guò)程中更新緩存。這種機(jī)制允許客戶端從緩存中快速接收響應(yīng),同時(shí)確保其始終可以訪問(wèn)最新的內(nèi)容。Stale-while-revalidate在高效提供內(nèi)容和確保內(nèi)容的新鮮度之間取得了平衡,從而提高了性能,使用戶體驗(yàn)更加流暢。
想成為我們的Beta測(cè)試者的客戶可在此處注冊(cè),我們會(huì)在功能可用于測(cè)試時(shí)通知您!
Workers for Platforms按需付費(fèi)計(jì)劃
另外,自4月16日起,所有開發(fā)人員都可以通過(guò)我們新推出的25美元按需付費(fèi)計(jì)劃使用Workers for Platforms!
Workers for Platforms正在改變我們構(gòu)建軟件的方式——其讓您能夠直接在產(chǎn)品中嵌入個(gè)性化和定制功能。借助Workers for Platforms,您可以代表用戶部署自定義代碼,或者讓用戶直接將其自己的代碼部署到您的平臺(tái)上,而無(wú)需您或您的用戶管理任何基礎(chǔ)設(shè)施。您可以將Workers for Platforms與今年Developer Week期間發(fā)布的所有令人興奮的新功能搭配使用——其支持所有與Workers配套的綁定(包括Workers AI、D1和Durable Objects)以及PythonWorkers。
以下是我們的一些客戶(從企業(yè)到初創(chuàng)公司)在Workers for Platforms上的構(gòu)建情況:
Shopify Oxygen是其基于Remix的電子商務(wù)框架Hydrogen托管平臺(tái),它基于Workers for Platforms構(gòu)建!Hydrogen/Oxygen組合讓Shopify商家能夠自由掌控其購(gòu)買體驗(yàn),擺脫了通用商店模板的束縛。
作為一個(gè)數(shù)據(jù)平臺(tái),Grafbase供開發(fā)人員創(chuàng)建無(wú)服務(wù)器GraphQL API,將整個(gè)業(yè)務(wù)的數(shù)據(jù)源統(tǒng)一到一個(gè)端點(diǎn)下。其使用Workers for Platforms為開發(fā)人員提供控制和靈活性,以部署自己用JavaScript/TypeScript或WASM編寫的代碼。
作為一個(gè)開源數(shù)據(jù)庫(kù),Triplit可在服務(wù)器和瀏覽器之間實(shí)時(shí)同步數(shù)據(jù)。它允許用戶構(gòu)建低延遲、實(shí)時(shí)的應(yīng)用程序,具有關(guān)系查詢、模式管理和內(nèi)置服務(wù)器端存儲(chǔ)等功能。其查詢和同步引擎基于Durable Objects構(gòu)建,并使用Workers for Platforms,讓客戶能夠?qū)⒆远xJavaScript打包到Triplit DB實(shí)例中。
可觀測(cè)性和平臺(tái)級(jí)控制
Workers for Platforms在允許您將Workers部署到您平臺(tái)上的同時(shí),還讓我們知曉針對(duì)用戶的Workers的可觀測(cè)性和控制有多么重要。我們有若干解決方案可以幫助應(yīng)對(duì)該情況:
自定義限制:在用戶的Workers上設(shè)置CPU時(shí)間或子請(qǐng)求限制。這可以用來(lái)設(shè)定限制,以便控制在Cloudflare上產(chǎn)生的成本,或者設(shè)計(jì)自己的定價(jià)和打包模式。例如,如果您在平臺(tái)上采用免費(fèi)增值模式,則可以降低免費(fèi)用戶的CPU時(shí)間限制。
Tail Workers:Tail Workers事件包含有關(guān)Worker的元數(shù)據(jù)、console.log()消息,并能夠捕獲任何未處理的異常。其可以用于為開發(fā)人員提供實(shí)時(shí)日志,以便實(shí)時(shí)監(jiān)控錯(cuò)誤并進(jìn)行故障排除。
Outbound Workers:獲得對(duì)用戶Workers發(fā)出的所有外部請(qǐng)求的可見(jiàn)性。Outbound Workers位于用戶Workers和其發(fā)出的fetch()請(qǐng)求之間,因此您可以在請(qǐng)求發(fā)送到互聯(lián)網(wǎng)之前全面了解請(qǐng)求。
定價(jià)
我們希望確保業(yè)余愛(ài)好者、個(gè)人開發(fā)者和獨(dú)立開發(fā)者都能負(fù)擔(dān)得起Workers for Platforms的價(jià)格。作為全新25美元按需付費(fèi)計(jì)劃的一部分,Workers for Platforms包括以下內(nèi)容:
Workers for Platforms已于2024年4月16日正式發(fā)售
自2024年4月16日起,您可以在Cloudflare儀表板的Workers for Platforms選項(xiàng)卡下購(gòu)買Workers for Platforms。