使用 [email protected] 在边缘站点自定义内容

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

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

  • 当 CloudFront 收到查看器的请求时 (查看器请求)
  • 在 CloudFront 将请求转发到源之前 (源请求)
  • 当 CloudFront 收到来自源的响应之后 (源响应)
  • 在 CloudFront 将响应返回到查看器之前 (查看器响应)

[email protected] 处理有很多用途。例如:

  • Lambda 函数可检查 Cookie 并重写 URL,以便用户可看到不同版本的站点以进行 A/B 测试。
  • CloudFront 可以检查 User-Agent 标头以根据查看器使用的设备将不同的对象返回到查看器,该标头包含有关这些设备的信息。例如,CloudFront 可基于不同图像所在的设备的屏幕尺寸返回这些图像。同样,该函数可能会考虑 Referer 标头的值,并导致 CloudFront 将图像返回到具有最低分辨率的自动程序。
  • 或者,您也可以检查 Cookie 中是否有其他条件。例如,在出售服装的零售网站上,如果您使用 Cookie 指示用户选择了哪种颜色的夹克,Lambda 函数可能会更改请求,以便 CloudFront 返回选定颜色的夹克的图像。
  • 在发生 CloudFront 查看器请求或源请求事件时,Lambda 函数可能会生成 HTTP 响应。
  • 函数可检查标头或授权令牌,并在 CloudFront 将请求转发到源之前插入一个标头以控制对您的内容的访问。
  • Lambda 函数还可以向外部资源发出网络调用,以确认用户凭证,或获取更多内容来自定义响应。

原文地址:https://www.cnblogs.com/cloudrivers/p/11617905.html

时间: 2024-08-04 19:59:39

使用 [email protected] 在边缘站点自定义内容的相关文章

iOS开发核心语言Objetive C —— 编译器指令@[email protected]自定义构造方法及类工厂

本分享是面向有意向从事iOS开发的伙伴们,或者已经从事了iOS的开发者.如果您对iOS开发有极高的兴趣,可以与我一起探讨iOS开发,一起学习,共同进步.如果您是零基础,建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列,然后在开始Objective C语言的学习,如果您遇到问题也可以与我探讨,另外将无偿分享自己整理的大概400G iOS学习视频及学习资料,都是干货哦!可以新浪微博私信?关注极客James,期待与您的共同学习和探讨!!由于时间有限,每天在工作之余整理的学习分享,难免有不足之处,

[email protected] 开源中国git与sourceTree联合使用教程

[摘要:[email protected] 做为一其中国版的github,显着有着他本身的上风,比方速率快,汉语表现.sourcetree也可称得上是一个没有错的git客户端,可以或许 支撑windows战mac os.本文便为那二者团结用去治理项目] [email protected] 作为一个中国版的github,明显有着他自己的优势,比如速度快,汉语显示.sourcetree也可称得上是一个不错的git客户端,能够支持windows和mac os.本文就为这两者联合用来管理项目做一个入门的

【[email protected]基础篇 ~】# 用户管理

经过前两篇文章的洗礼,相信大家对Linux的基本操作已有了大致的了解,今天我们来讲解一下Linux的用户管理,大家最熟悉的可能还是root用户,就是超级管理员么,具有神的权限.但是很多情况下,为了给其他用户登录和操作系统,我们需要创建其他非管理员用户并给他们分配一定的权限,以确保系统在多用户的情况下系统安全.那现在我们就开始学习吧,stay hungary, stay foolish! 用户管理 1.新建用户 1.1 创建一个普通账户 新建用户主要用useradd这个命令 [[email pro

[email protected]一个高效的配置管理工具--Ansible configure management--翻译(四)

无书面许可请勿转载 由于第三章内容较长,我将分做几个部分来翻译. Advanced Playbooks So far the playbooks that we have looked at are simple and just run a number of modules in order. Ansible allows much more control over the execution of your playbook. Using the following techniques

springMVC @[email protected]@[email protected]@Controller的区别和理解

作用: @Component------------------------泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注.(Component-------成分; 组分; 零件) @Resource------------------------(资源) @Autowired-----------------------(自动绑定) @Repository-----------------------于标注数据访问组件,即DAO组件(repository-------仓库; 贮藏

[email protected]一个高效的配置管理工具--Ansible configure management--翻译(六)

无书面许可请勿转载 高级playbook Finding files with variables All modules can take variables as part of their arguments by dereferencing them with {{ and }} . You can use this to load a particular file based on a variable. For example, you might want to select a

[email protected]动态代理-类加载器

一.测试单元     概述:用于测试JAVA代码的工具类,已内置在Eclipse中;     格式:         1.在方法的上面添加@Test;         2.对被测试的方法的要求:权限-public;返回值-void;参数-空参         [email protected]:在@Test标注的方法前执行,可以用于初始化;           @After:在@Test标注的方法后执行,可以用于释放资源; 二.注解     概述:java的一种数据类型,和类/接口在同一级别  

mysql Access denied for user [email protected]错误解决方法总结(转)

mysql Access denied for user [email protected]错误解决方法总结(转) mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下. 错误代码 1045 Access denied for user 'root'@'localhost' (using password:YES) 解决办法是重新设置root用户密码,

【[email protected]基础篇 ~】# 磁盘与文件系统

之前三篇文章我们简单介绍了Linux系统的用户管理,文件操作等,都是比较浅显的基本操作.这节我们要深入一下了,从文件系统我们要看到磁盘系统.从磁盘系统我们要看到操作系统的整体架构.废话不多少让我们开始学习吧! 磁盘与文件系统 1.磁盘系统 1.1 磁盘结构 如图所示,磁盘由扇区和柱面组成,分区的最小单位是柱面(柱是有厚度的,本图是截面图),磁盘读取的最小单位是扇区.第一扇区的MBR(446bytes)分区表可以最大包含四个分区(64bytes)的信息,即从开始柱面到结束柱面4组数据,每组16个字