本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 |
事件來源 |
|
|
是 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 | 是 | 否 |
函數日誌記錄和指標 | 是 | 是 |
定價 | 免費方案可用;按請求收費 | 無免費方案;按請求和函數持續時間收費 |