

# 使用函数在边缘进行自定义
<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 是 [Amazon Lambda](https://www.amazonaws.cn/lambda/) 的扩展，可为复杂的函数提供强大而灵活的计算功能，并带来更接近您的查看器的完整应用程序逻辑，并且具有高度安全性。Lambda@Edge 函数在 Node.js 或 Python 运行时环境中运行。您将函数发布到单个Amazon Web Services 区域，当您关联该函数与 CloudFront 分配时，Lambda@Edge 可自动在全球复制您的代码。

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

**Topics**
+ [CloudFront Functions 与 Lambda@Edge 之间的区别](edge-functions-choosing.md)
+ [使用 CloudFront Functions 在边缘进行自定义](cloudfront-functions.md)
+ [使用 CloudFront 连接函数进行自定义](customize-connections-validation-with-connection-functions.md)
+ [使用 Lambda@Edge 在边缘进行自定义](lambda-at-the-edge.md)
+ [边缘函数的限制](edge-functions-restrictions.md)