View a markdown version of this page

AWS Lambda 事件函數 (先前為 Lambda 函數) - AWS Lambda

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

AWS Lambda 事件函數 (先前為 Lambda 函數)

提示

參加 Serverless 專家的免費實作研討會,了解如何使用最佳實務建置 Serverless 應用程式。在 AWS 體驗網站上註冊免費的無伺服器研討會。

AWS Lambda Event Functions,先前稱為 Lambda 函數,執行您的程式碼以回應來自 Amazon Simple Storage Service (Amazon S3)、Amazon Simple Queue Service (Amazon SQS) 和 EventBridge 等來源的事件,而無需管理伺服器。函數會接收事件、執行您的處理常式,並傳回回應。函數使用pay-per-use定價自動擴展和縮減。若要開始使用,請參閱建立第一個函數。如需有關最佳實務、程式設計語言、租戶隔離和開發和部署工具的資訊,請參閱下列相關主題。

注意

Event Functions 是原始 Lambda 函數類型的名稱,Lambda 主控台會將其標記為 Event 函數。基礎資源保持不變:API 操作 (例如 CreateFunction和 Invoke)、 AWS SDKs、CLI AWS 和資源AWS::Lambda::Function類型仍會使用 函數,因此您不需要變更任何程式碼或組態。

如需定價資訊,請參閱 AWS Lambda 定價。

何時使用事件函數

您可以將 Event Functions 用於:

  • 檔案處理:在檔案上傳至 Amazon Simple Storage Service 時自動處理檔案。如需詳細資訊,請參閱檔案處理範例。

  • 長時間執行的工作流程:建置具狀態的多步驟工作流程,最多可執行一年。如需詳細資訊,請參閱耐用的 Lambda 函數。

  • 資料庫操作與整合範例:回應資料庫變更並自動執行資料工作流程。如需詳細資訊,請參閱資料庫範例。

  • 排程與定期任務:使用 EventBridge 定期執行自動化操作。如需詳細資訊,請參閱排程任務範例。

  • 串流處理:處理即時資料串流,用於分析與監控用途。如需詳細資訊,請參閱 Kinesis Data Streams。

  • Web 應用程式:透過 Amazon API Gateway、Application Load Balancer 或 Lambda 函數 URLs 處理 Web 和 API 請求。根據預設,每個執行環境一次處理一個請求。在 Lambda 受管執行個體上,執行環境會同時處理多個請求。

  • 行動後端:建立安全的 API 後端,供行動裝置與 Web 應用程式使用。

  • IoT 後端:處理 Web、行裝置動、IoT 與第三方 API 請求。如需詳細資訊,請參閱 IoT。

若要直接從標準 Web 伺服器提供 HTTP 流量,請使用 Lambda Web Functions。如需詳細資訊,請參閱AWS Lambda Web 函數。

事件函數和耐用函數

根據預設,Lambda 函數每次調用最多執行 15 分鐘,非常適合處理 API 請求、處理檔案上傳或回應資料庫變更等事件驅動型任務。在 Lambda 受管執行個體上,函數最多可以執行 90 分鐘,以進行非同步和事件來源映射 (ESM) 調用。耐用的 函數會針對需要執行更長的時間並避免中斷的工作負載延伸此模型。他們會自動檢查進度,以便在失敗後可靠地恢復,並在非同步叫用時執行長達一年。當您需要多步驟工作流程、human-in-the-loop核准或長時間跨服務協調時,請使用耐用的函數。

Lambda 的運作方式

使用 Lambda 時,您只需負責程式碼的相關操作。Lambda 在高可用性運算基礎結構上執行您的程式碼,並管理所有運算資源,包括伺服器與作業系統維護、容量佈建、自動擴展以及日誌記錄。

由於 Lambda 是無伺服器、事件驅動的運算服務,因此使用與傳統 Web 應用程式不同的程式設計方法。下列模型說明了 Lambda 的運作方式:

  1. 您可以在用於建立 Lambda 應用程式的基本建置區塊 – Lambda 函式中編寫並組織程式碼。

  2. 您可以透過 Lambda 許可控制安全性和存取權,使用執行角色來管理函數可以與哪些 AWS 服務互動,以及哪些資源政策可以與程式碼互動。

  3. 事件來源 AWS 和服務會觸發 Lambda 函數,以 JSON 格式傳遞事件資料,您的函數會處理這些資料 (包括事件來源映射)。

  4. Lambda 會透過語言專屬執行時期 (如 Node.js 與 Python) 在執行環境中執行程式碼,這些執行環境已封裝您的執行時期、層級與延伸模組。

提示

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

主要功能

設定、控制與部署安全應用程式:

  • 環境變數無需部署新的程式碼即可修改應用程式行為。

  • 版本可以安全地測試新功能,同時維持穩定的生產環境。

  • 層透過跨多個函式共用通用元件,最佳化程式碼的重複使用性與可維護性。

  • 程式碼簽署透過確保僅有經核准的程式碼能進入生產環境,強制執行安全合規要求。

可靠擴展與執行:

  • 並行與擴展控制可在流量激增期間精準管理應用程式的回應速度與資源使用率。

  • SnapStart 可大幅縮短冷啟動時間。Lambda SnapStart 可提供低至一秒的啟動效能,通常不會變更您的事件函數程式碼。

  • 回應串流透過逐步傳送大型承載資料來實現即時處理,從而最佳化函式效能。

  • 容器映像運用容器工作流程,將具有複雜相依性的函式進行封裝。

無縫連線與整合:

  • VPC 網路可防護敏感資源與內部服務的安全。

  • 檔案系統整合能跨函式調用共用持續性資料,並管理具狀態作業。

  • 函數 URL 無需額外服務即可建立公開面向的 API 與端點。

  • 延伸模組可透過監控、安全與營運工具增強函式效能。

相關資訊