九河云:在AWS上构建无服务器图像处理程序

发布于:2024-04-17 ⋅ 阅读:(19) ⋅ 点赞:(0)

网站通常需要呈现大量图像内容。当原始图像文件(图片)尺寸较大时,需要进行裁剪或缩放等额外处理,甚至根据设备端的分辨率进行适配。提前处理图像文件的工作量往往比较大,因此九河云结合AWS云平台提供一种按需使用的图像处理方式,在保证用户体验的同时降低图像文件分发的成本。

方案特点

(1) 该方案通过Amazon CloudFront缓存针对相同图像文件的访问请求,提高了用户体验。

(2) 按需对图像进行处理,即当图片被使用到的时候才会被处理。

(3) 提供丰富的图像处理方式,包括裁剪、居中、调整大小、模糊化等。

成本因素

用户只需要根据云上资源的实际用量付费,使用到的服务包括 Amazon CloudFront、Amazon API Gateway、Amazon Lambda、Amazon S3 等。按每月请求 100 万次新图片 (缓存失效情况) 估算 (不包含免费额度,参考平均图片处理时间为 1 秒,图像大小为 1 MB)。


第 1步

部署了 Amazon CloudFront 分配,该分配提供一个缓存层,以降低图像处理的成本和后续图像传输的延迟。CloudFront 域名可提供对图像处理程序 API 的缓存访问
 

第 2 步
Amazon API Gateway 提供端点资源并启动 AWS Lambda 函数。

第 3 步
Lambda 函数从您现有的 Amazon Simple Storage Service(Amazon S3)存储桶中检索图像,并使用 Sharp 将修改版的图像返回到 API Gateway 中。

第 4 步
S3 存储桶用于日志存储,与客户创建的用于存储图像的 S3 存储桶分开。如果选择,该解决方案会部署一个 S3 存储桶用于存储可选演示 UI。

第 5 步
如果您激活了图像 URL 签名功能,Lambda 函数将从您现有的 AWS Secrets Manager 密钥中检索密钥值以验证签名。

第 6 步
如果您使用智能裁剪或内容审核功能,Lambda 函数将调用 Amazon Rekognition 来分析图像并返回结果。

方案优势

1, 动态内容分发:根据客户的设备在运行时交付动态图片。

2, 内容审核使用:Amazon Rekognition 检测不当图像并进行模糊处理。

3, 智能裁剪:使用 Amazon Rekognition 的面部识别功能裁剪图像。

4,交互式Web界面:通过简单的 Web 界面,使用您账户中已经存在的图像文件与您的图像处理程序 API 端点直接交互。

5, 低成本存储:通过自动化版本控制节省存储成本,杜绝图像存在多个版本的可能。