AWS Lambda@Edge 与 CloudFront 结合使用
60
0
0
0
AWS Lambda@Edge 与 CloudFront 结合使用
什么是 CDN?
CDN(Content Delivery Network)即内容分发网络,指的是将数据储存在全球各地的服务器上,用户访问时可以就近获取数据。这样可以提高访问速度、降低负载压力。
AWS CloudFront 简介
AWS CloudFront 是一项快速、可靠、安全并且全球覆盖面广的 CDN 解决方案。它通过在世界各地部署 Amazon 的边缘位置来加速传输内容,并为您提供了一个简单而富有功能的接口来管理和制定规则以控制 HTTP 和 HTTPS 请求。
AWS Lambda@Edge 简介
AWS Lambda @ Edge 是一项无需管理基础结构即可运行代码的计算服务,可以在 Amazon CloudFront 边缘节点上执行自定义 JavaScript 或 Python 代码。此服务使开发人员能够直接编写代码以对每个请求进行实时处理,并从而为网站或应用程序添加更多功能和动态内容。
使用场景及好处:
- 在请求到达前修改/增强/取消请求头信息
- 根据用户 IP 地址选择特定版本语言
- 将错误跳转到另一个 URL
- 实现 A/B 测试等等。
- 更少依赖于后端服务器:当需要返回结果时,将不再需要向后端服务器发送所有请求。相反,只需向后端发送必要的数据即可。(减轻了后端负担)
- 更短响应时间:Lambda 函数位于最近的节点上,并且已经预先加载到内存中。因此,在执行函数之前不需要启动任何新实例或下载任何文件 。也无需再次建立连接或认证过程,因此响应时间更短 。
- 高复用性: 许多客户都可能具有类似但并非完全相同业务逻辑, 这些逻辑被封装成函数并发布至公共代码库, 开发者们可以轻松地重复利用这些现有方法, 节约大量工作量.
如何使用 Lambda@Edge ?
- 登录 AWS 控制台,在服务栏目下找到“Lambda”,进入该页面;
- 单击创建函数按钮;
- 给函数命名以及选择Python 运行环境;
- 设定 IAM 角色;
- 编写自己想要实现的业务逻辑;
- 创建完成之后会得到唯一 ARN 的地址和版本号码
- 前往 Cloudfront 页面配置触发条件;(注意点如下)
- 当您在创建流程中指定源站组件类型时,请确保指定起始源站作为默认原点组件。
- 您正在创建或编辑分配给 Web ACL 的条件,则建议使用 ORACLE_JVM 或 OPENJDK11_LATEST 客户端引擎镜像更新您当前环境(如果未升级)。否则,系统会默认选择 Java8u212 和 Node.js10x 并将其视为早期版本(Java8u191 和 Node.js8.x),这会导致某些问题和限制。
- 如果您希望禁止对象级别权限 (ACL) ,请确保源 S3 存储桶已配置为“Block All Public Access”。若未配置,则无法禁止对象级别 ACL,并且可能出现安全风险。
- 发布变更!结束啦! Enjoy it!
Tips: 可以通过针对事件类型创建限制区域来细粒度控制事件来源范围.
The end.