搜索
首页科技周边IT业界使用AWS ECS和LAMBDA的无服务器图像处理管道

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。

使用AWS ECS和LAMBDA的无服务器图像处理管道

该项目增强了您对无服务器体系结构和AWS服务集成的理解。记住:这是一个演示;生产需要增强的安全性和配置。

先决条件:

  • 具有具有必要权限的IAM用户的AWS帐户。
  • 熟悉AWS服务(S3,API Gateway,Lambda,DynamoDB,ECS,ECR)。
  • 安装了node.js。 GitHub存储库提供代码示例。

AWS服务设置:

  1. 创建S3存储桶:需要两个S3存储桶: sample-image-uploads-bucket (通用)和sample-thumbnails-bucket (最初在公共读取访问中禁用)。

使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道

  1. 配置sample-thumbnails-bucket permissions:使用以下策略授予公共阅读对此存储桶的访问:

使用AWS ECS和LAMBDA的无服务器图像处理管道

 {
  “版本”:“ 2012-10-17”,
  “陈述”: [
    {
      “ sid”:“ publicRead”,
      “效果”:“允许”,
      “主要的”: ”*”,
      “动作”:“ s3:getObject”,
      “资源”:“ ARN:AWS:S3 :::样本 -  thumbnails-bucket/*”
    }
  这是给
}
  1. 创建DynamoDB表:使用字符串主键image_id创建一个名为image_metadata的dynamodb表。

使用AWS ECS和LAMBDA的无服务器图像处理管道

  1. 创建IAM角色:为Lambda功能创建IAM角色( Lambda-Image-Processor-Role ),授予AmazonS3FullAccessAmazonDynamoDBFullAccessCloudWatchLogsFullAccess权限。

使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道

lambda功能:

  1. image-processor函数:此函数处理上传的图像,创建缩略图,并将元数据存储在DynamoDB中。它使用枕头库,需要一个lambda层(ARN:AWS:LAMBDA:US-EAST-1:770693421928:layer:klayers-p39-Pillow:1-记住调整该区域)。该功能由S3 PUT事件触发。

使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道

  1. get-image-metadata函数:此功能从dynamodb中检索图像元数据的前端。

使用AWS ECS和LAMBDA的无服务器图像处理管道

API网关:

创建与get-image-metadata lambda功能集成的HTTP API网关( image-gallery-api )。前端将使用get /images端点。

使用AWS ECS和LAMBDA的无服务器图像处理管道

测试:将图像上传到sample-image-uploads-bucket 。 Lambda功能应处理它,API网关应返回元数据。

使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道

前端(Next.js):

创建next.js应用程序,从API网关获取图像数据,然后显示缩略图。请记住使用正确的图像域更新next.config.mjs

使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道

Docker和ECS部署:

  1. 创建一个dockerfile: containerize the next.js应用程序。

使用AWS ECS和LAMBDA的无服务器图像处理管道

  1. 推向ECR:将Docker图像推向Amazon ECR。

使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道

  1. 创建ECS群集和任务定义:创建ECS Fargate群集和使用ECR映像的任务定义。确保任务角色具有必要的ECR权限。为ECS任务执行创建IAM角色。

使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道

  1. 创建ECS服务:创建ECS服务以运行容器。

  2. 访问应用程序:通过ECS任务的公共IP访问您已部署的Next.js应用程序。

使用AWS ECS和LAMBDA的无服务器图像处理管道

结论:该全面的教程展示了在AWS上构建功能齐全的无服务器图像处理管道。请记住,为生产部署实施强大的安全性和错误处理。考虑使用CloudFront改进S3访问控制并优化DynamoDB查询以进行可伸缩。

以上是使用AWS ECS和LAMBDA的无服务器图像处理管道的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道Apr 18, 2025 am 08:28 AM

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

CNCF ARM64飞行员:影响和见解CNCF ARM64飞行员:影响和见解Apr 15, 2025 am 08:27 AM

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

使用GO构建网络漏洞扫描仪使用GO构建网络漏洞扫描仪Apr 01, 2025 am 08:27 AM

此基于GO的网络漏洞扫描仪有效地确定了潜在的安全弱点。 它利用了GO的并发功能的速度功能,包括服务检测和漏洞匹配。让我们探索它的能力和道德

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)