

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

# 使用函數在邊緣自訂
<a name="edge-functions"></a>

使用 Amazon CloudFront，您可以撰寫自己的程式碼，以自訂 CloudFront 分發處理 HTTP 請求和回應的方式。程式碼會靠近檢視器 (使用者) 執行，以將延遲降至最低，而且您不必管理伺服器或其他基礎設施。您可以撰寫程式碼可以操作流經 CloudFront 的請求和回應，執行基本身分驗證和授權，在邊緣產生 HTTP 回應等。

您撰寫並附加至 CloudFront 分發的程式碼就稱為*邊緣函數*。CloudFront 提供兩種撰寫和管理邊緣函數的方式：

**CloudFront Functions**  
您可以在 JavaScript 中撰寫輕量型函數，以進行高度擴展及延遲敏感的 CDN 自訂。CloudFront Functions 執行時間環境提供低於一毫秒的啟動時間，可立即擴展以每秒處理數百萬個要求，並且非常安全。CloudFront Functions 是 CloudFront 的原生功能，這表示您可以在 CloudFront 中完全建置、測試和部署程式碼。

**Lambda@Edge**  
Lambda@Edge 是 [AWS Lambda](https://aws.amazon.com/lambda/) 的延伸，為複雜函數提供強大且靈活的運算，同時提供更靠近檢視器的完整應用程式邏輯，並且具有高度安全性。Lambda@Edge 函數在 Node.js 或 Python 執行時期環境中執行。您可以將它們發佈到單一 AWS 區域，但當您將函數與 CloudFront 分佈建立關聯時，Lambda@Edge 會自動將程式碼複寫到世界各地。

如果您在 CloudFront AWS WAF 上執行 ，則可以對 CloudFront Functions 和 Lambda@Edge 使用 AWS WAF 插入的標頭。這適用於檢視器和原始伺服器請求和回應。

**Topics**
+ [CloudFront Functions 與 Lambda@Edge 之間的差異](edge-functions-choosing.md)
+ [使用 CloudFront Functions 在邊緣進行自訂](cloudfront-functions.md)
+ [使用 CloudFront Connection Functions 自訂](customize-connections-validation-with-connection-functions.md)
+ [使用 Lambda@Edge 在邊緣自訂](lambda-at-the-edge.md)
+ [對邊緣函數的限制](edge-functions-restrictions.md)