使用函数在边缘进行自定义 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用函数在边缘进行自定义

借助 Amazon CloudFront,您可以编写自己的代码来自定义 CloudFront 分配如何处理 HTTP 请求和响应。该代码靠近查看者(用户)运行,以最大限度地减少延迟,而且您无需管理服务器或其他基础设施。您可以编写代码以操作通过 CloudFront 的请求和响应、执行基本身份验证和授权、在边缘生成 HTTP 响应等。

您编写并附加到 CloudFront 分配的代码称为边缘函数。CloudFront 提供了两种编写和管理边缘函数的方法:

CloudFront Functions

您可以在 JavaScript 中编写轻量级函数,以实现大规模、注重延迟的 CDN 定制设置。CloudFront Functions 运行时环境提供亚毫秒的启动时间,可立即扩展,从而每秒处理数百万个请求,并且非常安全。CloudFront Functions 是 CloudFront 的原生功能,这意味着您可以完全在 CloudFront 中构建、测试和部署代码。

Lambda@Edge

Lambda@Edge 是 Amazon Lambda 的扩展,可为复杂的函数提供强大而灵活的计算功能,并带来更接近您的查看器的完整应用程序逻辑,并且具有高度安全性。Lambda@Edge 函数在 Node.js 或 Python 运行时环境中运行。您将函数发布到单个Amazon Web Services 区域,当您关联该函数与 CloudFront 分配时,Lambda@Edge 可自动在全球复制您的代码。

如果您在 CloudFront 上运行 Amazon WAF,则可以为 CloudFront Functions 和 Lambda@Edge 使用 Amazon WAF 插入标头。这适用于查看器以及源请求和源响应。