什麼是 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、Android、Web 和 React Native 前端整合。
使用 Lambda 時,您只需負責程式碼的相關操作。Lambda 會管理提供記憶體、CPU、網路和其他資源平衡的運算機群,以執行您的程式碼。由於 Lambda 管理這些資源,因此您無法登入運算執行個體或在提供的執行時間自訂作業系統。
Lambda 會代表您執行操作和管理活動,包括管理容量、監控和記錄您的 Lambda 函數。
如果您確實需要管理運算資源,AWS 還有其他運算服務可考慮,例如:
AWS App Runner 會自動建置及部署容器化的 Web 應用程式、平衡流量負載並進行加密、執行擴展以滿足您的流量需求,並允許設定如何存取服務並在私有 Amazon VPC 中與其他 AWS 應用程式通訊。
搭配 Amazon ECS 的 AWS Fargate 可執行容器,而無需佈建、設定或擴展虛擬機器的叢集。
使用 Amazon EC2 可以自訂作業系統、網路和安全性設定以及整個軟體堆疊。您負責佈建容量、監控叢集運作狀態和效能,以及使用可用區域進行容錯。
主要功能
下列主要功能協助您開發可擴展、安全且易於擴充的 Lambda 應用程式:
- 設定函數選項
-
使用主控台或 AWS CLI 設定 Lambda 函數。
- 環境變數
-
使用環境變數來調整函數的行為,而無需更新程式碼。
- 版本
-
使用版本來管理函數部署,例如,可以使用新函數進行 Beta 測試,而不會影響穩定生產版本的使用者。
- 容器映像
-
使用 AWS 提供的基礎映像或替代基礎映像,建立 Lambda 函數的容器映像,以便可重複使用現有容器工具或部署依賴於可調整大小之相依項的更大工作負載,例如機器學習。
- Layer
-
封裝程式庫和其他相依項可減少部署存檔的大小,並可更快地部署程式碼。
- Lambda 延伸
-
使用監控、觀察、安全和管理工具來增強您的 Lambda 函數。
- 函數 URL
-
將專用 HTTP(S) 端點新增至 Lambda 函數。
- 回應串流
-
設定您的 Lambda 函數 URL,將回應承載從 Node.js 函數串流回用戶端,以提高第一個位元組時間 (TTFB) 效能或傳回較大的承載。
- 並行和擴展控制
-
對生產應用程式的擴展和回應能力進行精細控制。
- 程式碼簽署
-
確認只有核准的開發人員可在 Lambda 函數中發佈未修改、受信任的程式碼
- 私有網路
-
為資料庫、快取執行個體或內部服務等資源建立私有網路。
- 檔案系統存取
-
設定函數,將 Amazon Elastic File System (Amazon EFS) 掛載到本機目錄,使您的函數程式碼能夠安全地且高度並行地存取和修改共用資源。
- Lambda SnapStart for Java
-
將 Java 執行期的啟動效能提升最高 10 倍,無需額外費用,且通常不需要變更函數程式碼。