本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CloudFront Functions 和 Lambda@Edge 都提供了一種方法來執行回應 CloudFront 事件的程式碼。
CloudFront Functions 適用於下列使用案例的輕量型、短執行函數:
-
快取金鑰標準化 – 轉換 HTTP 請求屬性 (標頭、查詢字串、Cookie,甚至是 URL 路徑) 以建立最佳快取金鑰,進而改善快取命中率。
-
標頭操作 – 在請求或回應中插入、修改或刪除 HTTP 標頭。例如,您可以為每個請求新增一個
True-Client-IP
標頭。 -
URL 重新導向或重寫 – 根據請求中的資訊將檢視器重新導向至其他頁面,或重寫從一個路徑到另一個路徑的所有請求。
-
請求授權 – 透過檢查授權標頭或其他請求中繼資料來驗證雜湊授權字符,例如 JSON Web 字符 (JWT)。
若要開始使用 CloudFront Functions,請參閱使用 CloudFront 功能在邊緣自定義。
Lambda@Edge 非常適合下列使用案例:
-
需要幾毫秒或更長的時間才能完成的函數
-
需要可調整 CPU 或記憶體的函數
-
依賴第三方程式庫的函數 (包括 AWS SDK,用於與其他程式庫整合 AWS 服務)
-
需要網路存取才能使用外部服務進行處理的函數
-
需要檔案系統存取或存取 HTTP 請求內文的函數
若要開始使用 Lambda@Edge,請參閱使用 Lambda@Edge 在邊緣自訂。
為了協助您選擇使用案例的選項,請使用下表來了解 CloudFront Functions 和 Lambda@Edge 之間的差異。
CloudFront Functions | 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 |
50 MB (檢視器請求和檢視器回應) 50 MB (原始伺服器請求和原始伺服器回應) |
網路存取 | 否 | 是 |
檔案系統存取 | 否 | 是 |
請求內文存取 | 否 | 是 |
存取地理位置和裝置資料 | 是 |
否 (檢視器請求和檢視器回應) 是 (原始請求和原始伺服器回應) |
可以完全在 CloudFront 內建置和測試 | 是 | 否 |
函數日誌記錄和指標 | 是 | 是 |
定價 | 免費方案可用;按請求收費 | 無免費方案;按請求和函數持續時間收費 |