什麼是 AWS Lambda? - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

什麼是 AWS Lambda?

AWS Lambda 是一種運算服務,可讓您執行程式碼,而無需佈建或管理伺服器。

Lambda 在高可用性的運算基礎設施上執行您的程式碼,並執行所有運算資源的管理,包括伺服器與作業系統維護、容量佈建與自動擴展以及記錄。使用 Lambda,您唯一需要做的就是在 Lambda 支援的其中一種語言執行期中提供您的程式碼。

您可以將您的程式碼組織為 Lambda 函數。Lambda 服務只有在需要時才會執行您的函數,並會自動擴展。只需為使用的運算時間支付費用,一旦未執行程式碼,就會停止計費。如需詳細資訊,請參閱 AWS Lambda 定價

提示

若要了解如何建置無伺服器解決方案,請參閱無伺服器開發人員指南

使用 Lambda 的時機

Lambda 是理想的運算服務,適用於需要快速縱向擴展的應用程式案例,並在不需要時縮減規模至零。例如,您可將 Lambda 用於:

  • 檔案處理:使用 Amazon Simple Storage Service (Amazon S3),在上傳之後即時觸發 Lambda 資料處理程序。

  • 串流處理:使用 Lambda 和 Amazon Kinesis 處理即時串流資料,以進行應用程式活動追蹤、交易訂單處理、點選流分析、資料清理、日誌篩選、索引編制、社交媒體分析、物聯網 (IoT) 裝置資料遙測以及計量。

  • Web 應用程式:將 Lambda 與其他 AWS 服務結合,以建置功能強大的 Web 應用程式,這些應用程式可自動擴展和縮減,並在多個資料中心的高可用性組態中

  • IoT 後端:使用 Lambda 建置無伺服器後端,用於處理 Web、行動裝置、IoT 和第三方 API 請求。

  • 行動後端:使用 Lambda 和 Amazon API Gateway 建置後端,用於驗證和處理 API 請求。使 AWS Amplify 用可輕鬆整合您的 iOS、安卓系統、網頁和反應原生前端。

使用 Lambda 時,您只需負責程式碼的相關操作。Lambda 會管理提供記憶體、CPU、網路和其他資源平衡的運算機群,以執行您的程式碼。由於 Lambda 管理這些資源,因此您無法登入運算執行個體或在提供的執行時間自訂作業系統。

Lambda 會代表您執行操作和管理活動,包括管理容量、監控和記錄您的 Lambda 函數。

如果您確實需要管理運算資源, AWS 還需要考慮其他運算服務,例如:

  • AWS App Runner 自動建置和部署容器化 Web 應用程式、透過加密來負載平衡流量、擴展以符合流量需求,並允許設定存取服務的方式,以及在私有 Amazon VPC 中與其他 AWS 應用程式通訊的方式。

  • AWS Fargate 使用 Amazon ECS 可執行容器,無需佈建、設定或擴展虛擬機器叢集。

  • 使用 Amazon EC2 可以自訂作業系統、網路和安全性設定以及整個軟體堆疊。您負責佈建容量、監控叢集運作狀態和效能,以及使用可用區域進行容錯。

主要功能

下列主要功能協助您開發可擴展、安全且易於擴充的 Lambda 應用程式:

環境變數

使用環境變數來調整函數的行為,而無需更新程式碼。

版本

使用版本來管理函數部署,例如,可以使用新函數進行 Beta 測試,而不會影響穩定生產版本的使用者。

容器映像

使用 AWS 提供的基礎映像或替代基礎映像,為 Lambda 函數建立容器映像,以便重複使用現有的容器工具,或部署依賴相依性的大型工作負載,例如機器學習。

圖層

封裝程式庫和其他相依項可減少部署存檔的大小,並可更快地部署程式碼。

Lambda 延伸

使用監控、觀察、安全和管理工具來增強您的 Lambda 函數。

函數 URL

將專用 HTTP(S) 端點新增至 Lambda 函數。

回應串流

設定您的 Lambda 函數 URL,將回應承載從 Node.js 函數串流回用戶端,以提高第一個位元組時間 (TTFB) 效能或傳回較大的承載。

並行和擴展控制

對生產應用程式的擴展和回應能力進行精細控制。

程式碼簽署

確認只有核准的開發人員可在 Lambda 函數中發佈未修改、受信任的程式碼

私有網路

為資料庫、快取執行個體或內部服務等資源建立私有網路。

檔案系統存取

設定函數,將 Amazon Elastic File System (Amazon EFS) 掛載到本機目錄,使您的函數程式碼能夠安全地且高度並行地存取和修改共用資源。

爪哇 SnapStart 的 Lambda

Java 執行期的啟動效能提升最高 10 倍,無需額外費用,且通常不需要變更函數程式碼。