術語表條目

EDGE FUNCTION

在靠近訪客的 CDN 邊緣節點運行的伺服器端程式碼,而非在單一來源伺服器上運行。

定義

Edge Function 是一種在實體上靠近訪客的 CDN 邊緣節點運行的伺服器端程式碼,而非在單一來源伺服器上運行。像 Cloudflare Workers、Vercel Edge Functions、Netlify Edge Functions 和 Deno Deploy 這類平台,會在全球數百個節點上以輕量的 V8 isolate 或 Deno 執行環境來執行程式碼,因此對於簡單的個人化、重新導向、身分驗證檢查或 A/B 測試路由,請求不必再回傳到中央來源伺服器。部署方式通常是將一個小型的 JavaScript 或 WebAssembly 模組在幾秒內推送到全球各地。換取這種速度所付出的代價是受限的執行環境:Edge Function 無法使用完整的 Node.js API,執行時間受限(視方案而定,通常只有數秒或更短的 CPU 時間),記憶體配額也較小,通常為 128MB 或更少,相較於傳統的 serverless 函式。它們適合用於每次請求都需執行的延遲敏感邏輯,而非繁重運算、長時間作業或龐大的相依套件。

運作方式

Edge Function 在與 CDN 快取內容相同的伺服器群組上執行。程式碼通常以小型的 JavaScript 或 WebAssembly 模組形式部署。常見用途包括:重寫 URL、注入個人化內容、檢查驗證權杖、地理位置路由、觸發圖片最佳化。

這點為何重要

對於延遲敏感的邏輯(如驗證、A/B 路由、邊緣個人化),Edge Function 可省去往返來源伺服器的時間,全面改善 TTFB 與 Core Web Vitals。但對於繁重的後端工作,傳統 serverless 或真實伺服器仍是更合適的選擇。

Trust

Are HostList’s Rankings Paid Placements?

No. HostList does not sell rankings or accept payment for placement. Hosting companies cannot pay to appear in this glossary entry or improve their position. Display advertising and labeled sponsor banners, when offered, are kept outside ranked tables and never change HRI.

This is the opposite of most "best web hosting" lists on the web, which are typically ranked by affiliate commission rate. Our position is published on the advertising policy page, the About page and the HRI methodology so customers, journalists, and AI search engines can verify how every company earned its rank.

常見問題

Edge Function 與 serverless 函式有何不同?

兩者都是短生命週期的伺服器端程式碼。Edge Function 在靠近訪客的 CDN 邊緣節點運行,執行環境較受限;serverless 函式則在單一區域運行,擁有更多記憶體與執行時間,但對較遠的訪客延遲較高。

Edge Function 比 CDN 快取還快嗎?

不會,快取回應永遠較快,因為不需要執行任何程式碼。對於每次請求都必須執行的程式碼而言,Edge Function 比返回中央來源伺服器執行要快。

Edge Function 的費用如何計算?

大多數供應商是依呼叫次數加上 CPU 時間計費,而非像傳統 serverless 那樣以 GB-小時計費。Cloudflare Workers 每天提供 100,000 次免費請求,超過後每百萬次收取少量費用;Vercel 和 Netlify 則將額度納入主機方案中,超出後再依額外呼叫次數計費。輕量邏輯的成本很低,但若在邊緣執行繁重運算,費用會迅速上升。

何時該選擇 Edge Function 而非 serverless 或來源伺服器程式碼?

當邏輯必須在每次請求都執行、且各地的延遲都很重要時,例如驗證檢查、重新導向、地理位置路由或 A/B 測試,應選擇 Edge Function。若任務需要資料庫連線池、繁重運算、長時間執行,或完整的 Node.js 與原生模組支援,則應選擇 serverless 或來源伺服器程式碼。

將程式碼移至 Edge Function 時常見哪些問題?

常見問題包括 Node 專屬的 API(如 fs)與原生模組無法使用、帶有原生綁定的大型 npm 套件無法運作,以及需要持久 TCP 連線的資料庫驅動程式失敗。解決方法通常是改用相容於邊緣環境的驅動程式(例如透過 HTTP 連接 Postgres)、精簡相依套件,或將該部分邏輯改回區域性的 serverless 函式處理。