WEBKT

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 ?

  1. 登录 AWS 控制台,在服务栏目下找到“Lambda”,进入该页面;
  2. 单击创建函数按钮;
  3. 给函数命名以及选择Python 运行环境;
  4. 设定 IAM 角色;
  5. 编写自己想要实现的业务逻辑;
  6. 创建完成之后会得到唯一 ARN 的地址和版本号码
  7. 前往 Cloudfront 页面配置触发条件;(注意点如下)
    • 当您在创建流程中指定源站组件类型时,请确保指定起始源站作为默认原点组件。
    • 您正在创建或编辑分配给 Web ACL 的条件,则建议使用 ORACLE_JVM 或 OPENJDK11_LATEST 客户端引擎镜像更新您当前环境(如果未升级)。否则,系统会默认选择 Java8u212 和 Node.js10x 并将其视为早期版本(Java8u191 和 Node.js8.x),这会导致某些问题和限制。
    • 如果您希望禁止对象级别权限 (ACL) ,请确保源 S3 存储桶已配置为“Block All Public Access”。若未配置,则无法禁止对象级别 ACL,并且可能出现安全风险。

  8. 发布变更!结束啦! Enjoy it!
    Tips: 可以通过针对事件类型创建限制区域来细粒度控制事件来源范围.
    The end.
AWS Practitioners AWSLambda@EdgeCloudFront

评论点评