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