使用 Lambda@Edge 在边缘站点自定义内容

Lambda@Edge 是一个 AWS Lambda 扩展,后者是一个计算服务,可用于执行函数以自定义 CloudFront 提供的内容。您可以在一个区域(US-East-1(弗吉尼亚北部))中编写 Node.js 或 Python 函数,然后在与查看器较为接近的全球 AWS 位置执行它们,而无需预置或管理服务器。Lambda@Edge 会自动扩展,从每天几个请求到每秒数千个请求。在与查看器较为接近 AWS 位置 (而不是源服务器) 上处理请求,可显著减少延迟并改善用户体验。

在将 CloudFront 分配与 Lambda@Edge 函数相关联时,CloudFront 在 CloudFront 边缘站点中截获请求和响应。您可以在发生以下 CloudFront 事件时执行 Lambda 函数:

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

  • 在 CloudFront 将请求转发到源之前 (源请求)

  • 当 CloudFront 收到来自源的响应之后 (源响应)

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

Lambda@Edge 处理有很多用途。例如:

  • Lambda 函数可检查 Cookie 并重写 URL,以便用户可看到不同版本的站点以进行 A/B 测试。

  • CloudFront 可以检查 User-Agent 标头以根据查看器使用的设备将不同的对象返回到查看器,该标头包含有关这些设备的信息。例如,CloudFront 可基于不同图像所在的设备的屏幕尺寸返回这些图像。同样,该函数可能会考虑 Referer 标头的值,并导致 CloudFront 将图像返回到具有最低分辨率的自动程序。

  • 或者,您也可以检查 Cookie 中是否有其他条件。例如,在出售服装的零售网站上,如果您使用 Cookie 指示用户选择了哪种颜色的夹克,Lambda 函数可能会更改请求,以便 CloudFront 返回选定颜色的夹克的图像。

  • 在发生 CloudFront 查看器请求或源请求事件时,Lambda 函数可能会生成 HTTP 响应。

  • 函数可检查标头或授权令牌,并在 CloudFront 将请求转发到源之前插入一个标头以控制对您的内容的访问。

  • Lambda 函数还可以向外部资源发出网络调用,以确认用户凭证,或获取更多内容来自定义响应。

你可能感兴趣的:(使用 Lambda@Edge 在边缘站点自定义内容)