搜尋
首頁科技週邊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
21個開發人員新聞通訊將在2025年訂閱21個開發人員新聞通訊將在2025年訂閱Apr 24, 2025 am 08:28 AM

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL

使用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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境