---
title: CloudFront Functions 与 Lambda@Edge 场景对比与实践
keywords:
- CloudFront Functions
- Lambda@Edge
- Viewer Request
- 缓存
- 路由
description: 对比 CloudFront Functions 与 Lambda@Edge 的适用场景与能力边界,提供示例与缓存策略建议。
categories:
- 文章资讯
- 技术教程
---
CloudFront Functions 与 Lambda@Edge 场景对比与实践
CloudFront Functions(超轻量 JS,低延迟)
function handler(event) {
var request = event.request
// 简单重写与 header 处理
if (request.uri === '/'){ request.uri = '/index.html' }
request.headers['x-cf-func'] = { value: '1' }
return request
}
Lambda@Edge(Node.js,功能更强)
exports.handler = async (event) => {
const req = event.Records[0].cf.request
// 可访问更丰富的 API,适合鉴权、签名等复杂逻辑
req.headers['x-edge'] = [{ key: 'x-edge', value: '1' }]
return req
}
场景建议
- Functions:轻量路由、Header 处理、URL 重写;延迟更低、成本更小
- Lambda@Edge:鉴权、签名与复杂计算;部署到 Viewer/Origin 事件
缓存与策略
- 利用
Cache-Control与变体键(如Vary: Accept-Encoding)降低源站压力
总结
结合两者能力与成本模型选择合适层级进行逻辑处理与缓存优化。

发表评论 取消回复