概述

适用于 Amazon CloudFront 的动态图像转换(前身为无服务器图像处理器),通过 Amazon CloudFront 的全球内容分发网络(CDN)实现实时图像处理。此 AWS 解决方案可帮助您优化视觉内容交付,同时显著降低运营成本和复杂性。按需动态转换单个源图像,无需存储同一图像的多个版本,这样就能够节省大量存储资源。此解决方案还通过优化缓存来缩短加载时间,从而提升用户体验,同时提供强大的安全控制措施(包括 URL 签名、请求验证和内容审核等功能),以防范不当内容。
优势

通过简单的 API 请求实时转换和优化图像,根据浏览器性能提供最高效的格式,确保文件大小和质量达到最佳水平。
仅存储原始图像,按需生成变体,这样就无需存储同一图像的多个版本,并可显著降低存储成本。
利用 URL 签名、请求验证和内容审核功能保护视觉资产,同时对图像分发保持精细的访问控制。
借助无服务器架构自动处理变化的负载,在流量高峰时保持稳定性能,无需管理基础设施。
技术详情

您可以使用实施指南和随附的 AWS CloudFormation 模板自动部署该架构。
第 1 步
Amazon CloudFront 分发提供了一个缓存层,以降低图像处理的成本和后续图像交付的延迟。CloudFront 域名可提供对图像处理程序 API 的缓存访问。
第 2 步
Amazon Simple Storage Service(Amazon S3)对象 AWS Lambda 接入点(大型对象部署)或 Amazon API Gateway(API Gateway 部署)充当端点资源,触发 Lambda 函数。
第 3 步
Lambda 函数从客户的现有 S3 存储桶中检索图像,并使用 sharp 生成修改后的图像。
第 4 步
解决方案创建的 S3 存储桶提供日志存储空间,与客户创建的用于存储图像的 S3 存储桶分开。如果您在“部署演示 UI 模板参数”中输入“是”(默认输入),该解决方案将部署另一个 S3 存储桶,用于存储可选的演示 UI。
第 5 步
(可选)如果您在“启用签名模板参数”中输入“是”,Lambda 函数将从您现有的 AWS Secrets Manager 机密中检索机密值,以验证签名。有关更多信息,请查看启动堆栈。
第 6 步
(可选)如果您使用智能裁剪或内容审核功能,Lambda 函数将调用 Amazon Rekognition 来分析图像并返回结果。
第 7 步
CloudFront 函数会在触发源服务器之前对请求进行规范化处理,以防止出现错误的缓存未命中情况。在大型对象部署中,会在响应中使用一个额外的函数,以使大对象部署更接近现有的 SIH 接口。
相关内容
