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

使用 CloudFront Functions 在边缘进行自定义

借助 CloudFront Functions,您可以在 JavaScript 中编写轻量级函数,以实现大规模、延迟敏感的 CDN 自定义。您的函数可以操作通过 CloudFront 的请求和响应、执行基本身份验证和授权、在边缘生成 HTTP 响应等。CloudFront Functions 运行时环境提供亚毫秒的启动时间,可立即扩展,从而每秒处理数百万个请求,并且非常安全。CloudFront Functions 是 CloudFront 的原生功能,这意味着您可以完全在 CloudFront 中构建、测试和部署代码。

CloudFront Functions 极其适合轻量级短期运行的函数,以用于以下使用案例等:

  • 缓存键归一化 – 您可以转变 HTTP 请求属性(标头、查询字符串、cookies,甚至是 URL 路径)以创建最佳缓存键,它可以提高您的缓存命中率。

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

  • 状态代码修改和正文生成 – 您可以评估标头并使用自定义内容响应查看器。

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

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

在将 CloudFront 函数与 CloudFront 分配相关联时,CloudFront 在 CloudFront 边缘站点中截获请求和响应并将它们传递到您的函数。当发生以下事件时,您可以调用 CloudFront Functions:

  • 在 CloudFront 收到查看器的请求时 (查看器请求)

  • 在 CloudFront 将响应返回到查看器之前 (查看器响应)

有关简要介绍,请参阅教程:使用 CloudFront Functions 创建简单函数

您可以将 CloudFront 函数设置为使用存储在键值存储中的键值对,从而将变量包含在该函数中。有关在 CloudFront 函数中包含键值对的快速简介,请参阅教程:创建包含键值的函数

要开始编写函数代码并阅读代码示例,请参阅编写函数代码代码示例