行銷快易通

CDN網路CloudFront現支援在邊緣大規模執行程式碼

AWS擴展其CDN服務CloudFront的功能,新推出CloudFront Functions,讓用戶能夠在邊緣,以低延遲且大規模地執行輕量級JavaScript函式,也就是說,用戶現在可以操作流經CloudFront的請求和回應,執行像是基礎身分驗證,或是在邊緣產生HTTP回應等工作。

Amazon CloudFront可以低延遲且快速地交付資料、影片、應用程式和API,但現在許多應用程式需要在邊緣執行部分邏輯,而使用案例主要有兩個類型,第一種是當物件不在快取中,而且要執行較複雜的運算時,另一種則是能以簡單函式處理的HTTP(S)請求和回應。

針對第一種邊緣運算類型,AWS在2017年的時候推出Lambda@Edge服務,提供可編寫程式且無伺服器的邊緣運算環境,讓用戶在邊緣實作各種自定義的複雜運算,Lambda@Edge函式會在地區邊緣快取,通常是最靠近客戶端附近CloudFront邊緣地點的AWS地區。

而第二種類型是需要低成本且高效能的邊緣程式化解決方案,因此AWS現在推出了CloudFront Functions來補充這個需求空缺,讓用戶可以在全球218個CloudFront邊緣地點,執行輕量級JavaScript程式碼,CloudFront Functions的價格約是Lambda@Edge的六分之一。

CloudFront Functions非常適合處理輕量網頁請求,像是能夠用來操作快取鍵值和正規化,轉換URL、標頭、Cookie和查詢字串等HTTP請求屬性,而且透過轉換請求屬性,用戶可將多個請求正規化成單一快取鍵值項目,以顯著提高快取命中率。

CloudFront Functions還能用於URL改寫和重新導向,生成回應將請求重新導向其他URL,或是以URL改寫來進行A/B測試,另外,也能用於HTTP標頭操作,包括查看、新增、修改和刪除任何請求和回應標頭。CloudFront Functions也可創建和驗證用戶生成的權杖,以允許或拒絕請求,進而對透過CloudFront傳遞的內容進行管制和授權。

AWS解釋,由於要滿足現代應用程式需要的效能和規模,CloudFront Functions採用流程隔離模型,與Lambda@Edge所使用的虛擬機器隔離模式非常不同,因此他們實施了一些限制,包括避免存取網路和檔案系統,讓函式的執行時間能夠小於1毫秒,而且每秒可以處理數百萬個請求,也不會對整個內容交付網路的效能產生明顯的影響。

和Lambda@Edge相似的是,CloudFront Functions透過執行程式碼來回應CloudFront生成的事件,也就是說,當CloudFront收到來自瀏覽者的請求,JavaScript函式將會在CloudFront轉發回應前觸發,而且在CloudFront轉送請求到請求來源(Origin)之前,以及CloudFront收到來源(Origin)回應前,還能進一步觸發Lambda@Edge函式。

用戶可以考量快取以及要進行的操作,將CloudFront Functions和Lambda@Edge一併使用,而當用戶需要一些CloudFront Functions所沒有的Lambda@Edge功能,像是網路存取或是更長的執行時間,也可以在CloudFront快取內容前後使用Lambda@Edge。

TOP