使用 CloudFront Functions 在边缘进行自定义
借助 Amazon CloudFront 中的 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 函数:
-
在 CloudFront 收到查看器的请求时 (查看器请求)
-
在 CloudFront 将响应返回到查看器之前 (查看器响应)
有关创建 CloudFront 函数的分步指南,请参阅 教程:使用 CloudFront Functions 创建简单函数。
要开始编写函数代码并阅读可与 CloudFront Functions 一起使用的示例代码,请参阅 编写函数代码(编程模型) 和 示例代码。