使用函數在邊緣自訂
使用 Amazon CloudFront,您可以撰寫自己的程式碼,以自訂 CloudFront 分發處理 HTTP 請求和回應的方式。程式碼會靠近檢視器 (使用者) 執行,以將延遲降至最低,而且您不必管理伺服器或其他基礎設施。您可以撰寫程式碼可以操作流經 CloudFront 的請求和回應,執行基本身分驗證和授權,在邊緣產生 HTTP 回應等。
您撰寫並附加至 CloudFront 分發的程式碼就稱為邊緣函數。CloudFront 提供兩種撰寫和管理邊緣函數的方式:
- CloudFront Functions
-
您可以在 JavaScript 中撰寫輕量型函數,以進行高度擴展及延遲敏感的 CDN 自訂。CloudFront Functions 執行時間環境提供低於一毫秒的啟動時間,可立即擴展以每秒處理數百萬個要求,並且非常安全。CloudFront Functions 是 CloudFront 的原生功能,這表示您可以在 CloudFront 中完全建置、測試和部署程式碼。
- Lambda@Edge
-
Lambda@Edge 是 AWS Lambda
的延伸,為複雜函數提供強大且靈活的運算,同時提供更靠近檢視器的完整應用程式邏輯,並且具有高度安全性。Lambda@Edge 函數在 Node.js 或 Python 執行時期環境中執行。您可以發佈這些函數至單一 AWS 區域,但您將函數與 CloudFront 分佈建立關聯時,Lambda@Edge 會自動在全球範圍複寫您的程式碼。
如果您在 CloudFront 上執行 AWS WAF,則可以對 CloudFront Functions 和 Lambda@Edge 使用 AWS WAF 插入的標頭。這適用於檢視器和原始伺服器請求和回應。