CloudFront Functions 和 Lambda@Edge 之間的差異 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CloudFront Functions 和 Lambda@Edge 之間的差異

CloudFront Functions 和 Lambda@Edge 都提供了一種方法來執行程式碼來回應 CloudFront事件。

CloudFront 函數非常適合用於下列使用案例的輕量、短執行函數:

  • 快取金鑰正規化 – 轉換HTTP請求屬性 (標頭、查詢字串、Cookie,甚至是URL路徑),以建立最佳快取金鑰 ,進而改善快取命中率。

  • 標頭操作 – 在請求或回應中插入、修改或刪除HTTP標頭。例如,您可以為每個請求新增一個 True-Client-IP 標頭。

  • URL 重新導向或重寫 – 根據請求中的資訊將檢視器重新導向至其他頁面,或重寫從一個路徑到另一個路徑的所有請求。

  • 請求授權 – 透過檢查授權標頭或其他請求中繼資料來驗證雜湊授權權杖,例如 JSON Web 權杖 (JWT)。

若要開始使用 CloudFront 函數,請參閱 使用 CloudFront 功能在邊緣自定義

Lambda@Edge 非常適合下列使用案例:

  • 需要幾毫秒或更長的時間才能完成的函數

  • 需要可調整CPU或記憶體的函數

  • 依賴第三方程式庫的函數 (包括 AWS SDK,用於與其他 整合 AWS 服務)

  • 需要網路存取才能使用外部服務進行處理的函數

  • 需要檔案系統存取或存取HTTP請求內文的函數

若要開始使用 Lambda@Edge,請參閱使用 Lambda@Edge 在邊緣進行自訂

為了協助您選擇使用案例的選項,請使用下表了解 CloudFront 函數和 Lambda@Edge 之間的差異。

CloudFront 函數 Lambda@Edge
程式設計語言 JavaScript (ECMAScript 5.1 相容) Node.js 和 Python
事件來源
  • 檢視器請求

  • 檢視器回應

  • 檢視器請求

  • 檢視器回應

  • 原始伺服器請求

  • 原始伺服器回應

支援 Amazon CloudFront KeyValueStore

CloudFront KeyValueStore 僅支援JavaScript 執行期 2.0

擴展 每秒 10,000,000 個請求或更多 每秒每個區域最多 10,000 個請求
函數持續時間 低於一毫秒

最多 5 秒 (檢視器請求和檢視器回應)

最多 30 秒 (原始伺服器請求和原始伺服器回應)

函數記憶體大小上限

2 MB

128 MB (檢視器請求和檢視器回應)

10,240 MB (10 GB) (原始請求和原始伺服器回應)

如需詳細資訊,請參閱Lambda@Edge 的配額

函數程式碼和包含程式庫的最大規模 10 KB

1 MB (檢視器請求和檢視器回應)

50 MB (原始伺服器請求和原始伺服器回應)

網路存取
檔案系統存取
請求內文存取
存取地理位置和裝置資料

否 (檢視器請求和檢視器回應)

是 (原始請求和原始伺服器回應)

可以完全在 內建置和測試 CloudFront
函數日誌記錄和指標
定價 免費方案可用;按請求收費 無免費方案;按請求和函數持續時間收費