

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

# CloudFront Functions 與 Lambda@Edge 之間的差異
<a name="edge-functions-choosing"></a>

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

CloudFront Functions 適合在以下使用案例用於輕量型且執行時間較短的函數：
+ **快取金鑰標準化**：轉換 HTTP 請求屬性 (標頭、查詢字串、Cookie，甚至 URL 路徑)，以建立最佳[快取金鑰](understanding-the-cache-key.md)，這可提升您的快取命中率。
+ **標頭操作**：在請求或回應中插入、修改或刪除 HTTP 標頭。例如，您可以為每個請求新增一個 `True-Client-IP` 標頭。
+ **URL 重新導向或重寫**：根據請求中的資訊將檢視器重新導向至其他頁面，或將全部請求從一個路徑重寫至另一個路徑。
+ **請求授權**：透過檢查授權標頭或其他請求中繼資料驗證雜湊的授權記號，例如 JSON Web 記號 (JWT)。

若要開始使用 CloudFront Functions，請參閱[使用 CloudFront Functions 在邊緣進行自訂](cloudfront-functions.md)。

Lambda@Edge 非常適合下列使用案例：
+ 需要數毫秒或更長時間才能完成的函數
+ 需要可調整 CPU 或記憶體的函數
+ 依賴第三方程式庫的函數 （包括 AWS SDK，用於與其他程式庫整合 AWS 服務)
+ 需要網路存取才能使用外部服務進行處理的函數
+ 需要檔案系統存取或存取 HTTP 請求內文的函數

若要開始使用 Lambda@Edge，請參閱[使用 Lambda@Edge 在邊緣自訂](lambda-at-the-edge.md)。

為了協助您選擇適合使用案例的選項，請使用下表瞭解 CloudFront Functions 和 Lambda@Edge 之間的差異。如需更多資訊瞭解適用於原始修改協助程式方法的差異，請參閱 [在 CloudFront Functions 和 Lambda@Edge 之間進行選擇](helper-functions-origin-modification.md#origin-modification-considerations)。


|  | CloudFront Functions | Lambda@Edge | 
| --- | --- | --- | 
| 程式設計語言 | JavaScript (與 ECMAScript 5.1 相容) | Node.js 和 Python | 
| 事件來源 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudFront/latest/DeveloperGuide/edge-functions-choosing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudFront/latest/DeveloperGuide/edge-functions-choosing.html)  | 
|  支援 [Amazon CloudFront KeyValueStore](kvs-with-functions.md)  |  是 CloudFront KeyValueStore 僅支援 [JavaScript 執行時期 2.0](functions-javascript-runtime-20.md)  |  否  | 
| 擴展 | 每秒最多數百萬個請求 | 每秒每個區域最多 10,000 個請求 | 
| 函數持續時間 | 低於一毫秒 |  最長 30 秒 （檢視器請求和檢視器回應） 最多 30 秒 (原始伺服器請求和原始伺服器回應)  | 
|  最大函數記憶體大小  | 2 MB |  128 MB （檢視器請求和檢視器回應） 10,240 MB (10 GB) (原始伺服器請求和原始伺服器回應) 如需詳細資訊，請參閱[Lambda@Edge 的配額](cloudfront-limits.md#limits-lambda-at-edge)。  | 
| 函數程式碼和包含程式庫的最大規模 | 10 KB |  50 MB （檢視器請求和檢視器回應） 50 MB (原始伺服器請求和原始伺服器回應)  | 
| 網路存取 | 否 | 是 | 
| 檔案系統存取 | 否 | 是 | 
| 請求內文存取 | 否 | 是 | 
| 存取地理位置和裝置資料 | 是 |  否 (檢視器請求和檢視器回應) 是 (原始伺服器請求和原始伺服器回應)  | 
| 可以完全在 CloudFront 內建置和測試 | 是 | 否 | 
| 函數日誌記錄和指標 | 是 | 是 | 