AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Lambda@Edge

Lambda@Edge 允许您运行 Lambda 函数来自定义 CloudFront 提供的内容,从而在更靠近查看器的 AWS 位置执行函数。这些函数在不提供或管理服务器的情况下运行,以响应 CloudFront 事件。您可以在以下时间点使用 Lambda 函数来更改 CloudFront 请求和响应:

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

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

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

  • 在 CloudFront 将响应转发到查看器之前 (查看器响应)


			显示 CloudFront 事件如何能够触发 Lambda 函数的概念图。

您也可以生成对查看器的响应,而不必将请求发送到源。

使用 Lambda@Edge,您可以构建各种解决方案,例如:

  • 检查 Cookie,从而重写站点不同版本的 URL 以进行 A/B 测试。

  • 根据 User-Agent 标头将不同的对象发送给您的用户,该标头包含有关提交请求的设备的信息。例如,您可以根据用户的设备向用户发送分辨率不同的图像。

  • 检查标头或授权令牌,在将请求转发到源之前插入一个相应的标头并允许访问控制。

  • 添加、删除和修改标头,然后重写 URL 路径,将用户定向到缓存中的不同对象。

  • 生成新的 HTTP 响应,将未经身份验证的用户重定向到登录页面,直接从边缘创建和交付静态网页,或执行其他操作。有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的使用 Lambda 函数生成对查看器和源请求的 HTTP 响应

有关使用 Lambda@Edge 的更多信息,请参阅结合使用 CloudFront 和 Lambda@Edge