拉朱·丹迪加姆
发表于
分享这篇文章
欢迎开发者来到开发和自动化的世界。今天,我们 器图像处理管道 将深入探讨一个激动人心的项目,利用 AWS 服务创建一个无服务器图像处理管道。
该项目首先创建 S3 存储桶来存储上传的图像和处理过的缩略图,最终使用许多服务,如 Lambda、API 网关(触发 Lambda 函数)、DynamoDB(存储图像元数据) 器图像处理管道 ,最后我们将通过创建项目的 Docker 镜像在 ECS 集群中运行该程序。
该项目包含云服务和类似 Next.js 的开发技术栈,实 撰写引人入胜的欢迎电子邮件的 9 个技巧 践一下将进一步加深你对云服务及其交互方式的理解。闲话少叙,让我们开始吧!
注意:本文中的代码和说明仅供演示和学习使用。生产环境需要更严格的配置和安全控制。
先决条件
在进入项目之前,我们需要确保我们的系统满足以下要求:
- AWS 账户:由于我们在项目中使用 AWS 服务,因此需要一个 AWS 账户。如果您能提供已配置且具备所需服务访问权限的 IAM 用户,我们将不胜感激。
- 对 AWS 服务的基本了解:由于我们要处理许多 AWS 服务,因此最好对它们有充分的了解,例如用于存储的 S3、用于触发 Lambda 函数的 API 网关等等 器图像处理管道 。
- 已安装 Node:我们的前端是用 Next.js 构建的,因此您的系统中必须有 Node。
对于代码参考,这里是GitHub repo。
AWS 服务设置
我们将通过设置 AWS 服务来启动项目。首先,我们将创建两个 S3 存储桶,分别为 。之所以使用这么长的名称,是因为存储桶名称在整个 AWS 工作区中必须唯一。
因此,要创建存储桶,请转到 S3 仪表板并单击“创建存储桶”,选择“通用”,并为其命名(sample-image-uploads-bucket),其余配置保留为默认设置。
类似地,创建另一个名为 sample-thumbnails-bucket 的存储桶,但在此存储桶中,请确保取消选中“阻止公共访问”,因为我们的 ECS 集群需要它。
我们需要确保 sample-thumbnails-bucket 存储桶拥有公开读取权 邮寄线索 限,以便 ECS 前端能够显示这些内容。为此,我们将为该存储桶附加以下策略:
创建存储桶后,让我们转到用于存储图像元数据的数据库。我们将为此创建一个 DynamoDb 表。转到 DynamoDb 控制台,点击“创建表”,为其命名 (image_metadata),并在主键选择字符串中将其命名为image_id
。
AWS 服务之间会相互通信,因此它们需要一个拥有适当权限的角色。要创建角色,请前往 IAM 仪表板,选择“角色”,然后点击“创建角色”。在“信任身份类型”下,选择“AWS 服务”,在“用例”下,选择“Lambda”。附加以下策略:
- AmazonS3FullAccess
- AmazonDynamoDBFullAccess
- CloudWatchLogs完全访问权限
为该角色命名(Lambda-Image-Processor-Role)并保存。