CloudFront Functions 与 Lambda@Edge 之间的区别 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

CloudFront Functions 与 Lambda@Edge 之间的区别

CloudFront Functions 和 Lambda@Edge 都提供了一种运行代码以响应 CloudFront 事件的方法。

CloudFront Functions 非常适合用于以下应用场景的轻量级短期运行的函数:

  • 缓存键标准化 – 转变 HTTP 请求属性(标头、查询字符串、Cookie,甚至是 URL 路径)以创建合适的缓存键,这可以提高您的缓存命中率。

  • 标头操作 – 在请求或响应中插入、修改或删除 HTTP 标头。例如,您可以为每个请求添加 True-Client-IP 标头。

  • URL 重定向或重写 – 根据请求中的信息将查看器重定向到其他页面,或者将所有请求从一个路径重写到另一个路径。

  • 请求授权 – 通过检查授权标头或其他请求元数据来验证哈希授权令牌,例如 JSON Web 令牌(JWT,JSON Web Token)。

要开始使用 CloudFront Functions,请参阅使用 CloudFront Functions 在边缘进行自定义

Lambda @Edge 非常适合以下应用场景:

  • 需要几毫秒或更长时间才能完成的函数

  • 需要可调节 CPU 或内存的函数

  • 依赖于第三方库(包括 Amazon SDK,用于与其他Amazon Web Services 服务服务集成)的函数

  • 需要网络访问权限以使用外部服务进行处理的函数

  • 需要文件系统访问权限或访问 HTTP 请求正文的函数

要开始使用 Lambda@Edge,请参阅使用 Lambda@Edge 在边缘进行自定义

为了帮助您根据自己的应用场景来选择选项,请使用下表来了解 CloudFront Functions 与 Lambda @Edge 之间的区别。

CloudFront Functions Lambda@Edge
编程语言 JavaScript(兼容 ECMAScript 5.1) Node.js 和 Python
事件来源
  • 查看器请求

  • 查看器响应

  • 查看器请求

  • 查看器响应

  • 源请求

  • 源响应

支持 Amazon CloudFront KeyValueStore

CloudFront KeyValueStore 仅支持 JavaScript 运行时 2.0

扩展 每秒 10000000 个请求或更多 每个区域每秒最多 10000 个请求
函数持续时间 亚毫秒

最长 5 秒(查看器请求和查看器响应)

最长 30 秒(源请求和源响应)

最大函数内存大小

2 MB

128 MB(查看器请求和查看器响应)

10240 MB(10 GB)(源请求和源响应)

有关更多信息,请参阅 有关 Lambda@Edge 的配额

函数代码和包含的库的最大大小 10 KB

1 MB(查看器请求和查看器响应)

50 MB(源请求和源响应)

网络访问
文件系统访问
访问请求正文
访问地理位置和设备数据

否(查看器请求和查看器响应)

是(源请求和源响应)

可以完全在 CloudFront 内构建和测试
函数日志记录和指标
定价 提供免费套餐;按请求收费 没有免费套餐;按请求和函数持续时间收费