AWS Lambda 功能

為何選擇 AWS Lambda?

AWS Lambda 是一種無伺服器運算服務,可執行程式碼以回應事件,並且自動為您管理基礎運算資源。這些事件可能包括狀態變更或更新,例如使用者將商品放入電子商務網站的購物車中。您可以使用 AWS Lambda 透過自訂邏輯來擴展其他 AWS 服務,或者自己建立以 AWS 的擴展性、效能和安全性執行的後端服務。AWS Lambda 會自動執行程式碼以回應多個事件,例如透過 Amazon API Gateway 發出的 HTTP 請求、Amazon Simple Storage Service (Amazon S3) 儲存貯體中的物件修改、Amazon DynamoDB 中的表格更新,以及 AWS Step Functions 中的狀態轉換。

Lambda 在高可用性的運算基礎設施上執行您的程式碼,並為您執行運算資源的所有管理工作。這包括伺服器和作業系統維護、容量佈建和自動擴展、程式碼和安全修補程式部署,以及程式碼監控和日誌記錄。您唯一需要做的就是提供程式碼。

Page Topics

產品關鍵功能

產品關鍵功能

AWS Lambda 可讓您將自訂邏輯新增到 Amazon S3 儲存貯體和 Amazon DynamoDB 表之類的 AWS 資源,以便您在資料進入雲端或在雲端移動資料時輕鬆將運算應用於資料。

AWS Lambda 的使用非常簡單。首先,上傳程式碼 (或直接在 Lambda 主控台建立程式碼) 與選擇記憶體、逾時期間和 AWS Identity and Access Management (IAM) 角色以建立函數。然後,您指定 AWS 資源以觸發該函數,資源可以是特定的 Amazon S3 儲存貯體、Amazon DynamoDB 表或 Amazon Kinesis 串流。當資源有所變更時,Lambda 也會視需要執行函數,從而啟動和管理運算資源,以便跟上傳入請求的腳步。

您可以使用 AWS Lambda,透過 Lambda 應用程式開發介面 (API) 或使用 Amazon API Gateway 建置的自訂 API 端點,建立隨需觸發的新的後端應用程式服務。Lambda 會處理自訂事件,而不是在用戶端對其提供服務,可協助您避免用戶端平台變化、減少電池耗電情況並啟用更簡單的更新。

您不需學習任何新語言、工具或架構,即可採用 AWS Lambda。您可以使用任何第三方程式庫,甚至是原生程式庫。您也可以將任何程式碼 (架構、SDK、程式庫等) 封裝為 Lambda 層,並在多個函數之間輕鬆管理和共用它們。Lambda 原生支援 Java、Go、PowerShell、Node.js、C#、Python 和 Ruby 程式碼,並提供 Runtime API,讓您可以使用任何其他程式設計語言來設計功能。

AWS Lambda 負責管理所有基礎設施,讓您的程式碼可在具有高度可用性的容錯型基礎設施上執行,使您能夠專注於建構與眾不同的後端服務。有了 Lambda,您就不必在修補程式發行時更新基礎作業系統 (OS),也不必擔心需要隨著使用量的增加而調整大小或增加新伺服器。AWS Lambda 可以順暢地部署您的程式碼、處理所有管理、維護和安全修補程式,並透過 Amazon CloudWatch 提供內建的記錄和監控。

AWS Lambda 可在各 AWS 區域中跨多個可用區域 (AZ) 維護運算容量,以保護您的程式碼不受個別機器或資料中心設施故障的影響。AWS Lambda 及該服務上執行的函數都提供可預測且可靠的執行效能。AWS Lambda 的設計旨在為服務本身及其執行的函數均提供高可用性。沒有維護時段或計劃停機時間。

AWS Lambda 支援將函數封裝和部署為容器映像,讓客戶可以使用相似的容器映像工具、工作流程和相依性,輕鬆建置基於 Lambda 的應用程式。客戶也可受益於 Lambda 的操作簡易性、自動擴展 (低於一秒的啟動時間)、高可用性、按用量付費的計費模型、以及與超過 200 種 AWS 服務和軟體即服務 (SaaS) 應用程式的原生整合。企業客戶可以將一致的工具組搭配其 Lambda 和容器化應用程式使用,以簡化安全掃描和影像簽署等集中管控要求。

AWS Lambda 只在需要時叫用您的程式碼,並能自動擴展以支援傳入請求的速率,而無需任何手動組態。您的程式碼可處理的請求數目無任何限制。AWS Lambda 通常會在事件發生後的數毫秒內開始執行程式碼。由於 Lambda 會自動擴展,因此,隨著事件頻率的增加,效能始終保持在較高水準。由於您的程式碼是無狀態的,Lambda 可在需要時盡可能啟動許多執行個體,而不會有冗長的部署和組態延遲的情況。

使用 Amazon RDS Proxy,善用來自關聯式資料庫的全受管連線集區。RDS Proxy 可有效管理連至關聯式資料庫的數千個並行連線,可輕鬆建置與關聯式資料庫互動的高度擴展且安全的 Lambda 型無伺服器應用程式。RDS Proxy 目前支援 MySQL 和 Aurora。您可以透過 Amazon RDS 主控台或 AWS Lambda 主控台,將 RDS Proxy 用於無伺服器應用程式。

佈建並行可讓您更好地控制無伺服器應用程式效能。開啟後,佈建並行功能可讓函數保持初始化及 Hyper 就緒狀態,從而在兩位數毫秒時間內做出回應。佈建並行很適合需要進一步控制函數開始時間的任何 AWS Lambda 應用程式。輕鬆設定和調整您的應用程式所需的並行。根據需求擴展、縮減或完全關閉它。利用佈建並行對延遲敏感的應用程式實現一致的效能,而無需變更程式碼或管理運算資源。

透過適用於 AWS Lambda 的 Amazon Elastic File System (EFS),無論規模大小為何,都能以低延遲的方式安全地讀取、寫入和保留大量資料。您不需要撰寫程式碼和將資料下載到暫時儲存體來進行處理。這樣可節省時間並簡化程式碼,以便您可以專注於商業邏輯。EFS for Lambda 非常適合一系列使用案例,包括處理或備份大量資料,以及處理大型參考檔案或模型。您還可以在無伺服器執行個體或容器型應用程式之間共享檔案,甚至可以使用 EFS for AWS Lambda 執行機器學習 (ML) 推論。

使用 Lambda@Edge,AWS Lambda 可在全球各個 AWS 位置執行程式碼以回應 Amazon CloudFront 事件,像是透過原始伺服器和檢視者發出或接收的內容請求。這可讓您以低延遲的方式更輕鬆地交付更豐富、更個人化的內容給最終使用者。 

建置 AWS Step Functions 工作流程,以針對複雜或長時間執行的任務協調多個 AWS Lambda 函數。使用 Step Functions 可透過序列化、平行、分支和錯誤處理步驟,讓您定義可觸發 Lambda 函數集合的工作流程。有了 Step Functions 和 Lambda 之後,您可以為應用程式和後端建立有狀態且長時間執行的程序。

AWS Lambda 的內建軟體開發套件 (SDK) 可與 AWS Identity and Access Management (IAM) 整合,以確保能安全地存取其他 AWS 服務的程式碼。依預設,AWS Lambda 在 Amazon Virtual Private Cloud (VPC) 中執行您的程式碼。您可以選擇性地在自己的 VPC 背後設定 AWS Lambda 資源存取權,以利用自訂安全群組和網絡存取控制清單。這提供了對 VPC 內資源的安全 Lambda 函數存取權。 AWS Lambda 符合 SOCHIPAAPCIISO 標準。如需關於 Lambda 認證和合規準備情況的最新資訊,請參閱完整的服務範圍

Code Signing for AWS Lambda 可讓您驗證只有由核准的開發人員發佈的未修改程式碼才會在您的 Lambda 函數中部署。您僅需建立數位簽署的程式碼成品並設定您的 Lambda 函數,以便在部署時驗證簽名。這會提高應用程式開發速度和敏捷性 (即使是在大型團隊內亦如此),同時強制執行高安全標準。

使用 AWS Lambda,您依穩執行的持續時間支付費用,並非按伺服器單位付費。使用 Lambda 函數時,您只需為處理的請求及執行程式碼所需的運算時間付費。計費方式是以一毫秒作為增額單位,從而輕鬆、具成本效益地將請求數量從每天數個自動擴展至每秒數千個。使用佈建並行,您需要按設定的並行數量和設定的持續時間付費。啟用佈建並行及執行您的函數時,您還需要按請求和執行持續時間付費。若要進一步了解定價,請瀏覽 AWS Lambda 定價

選擇要分配給函數的記憶體數量,AWS Lambda 便會按比例分配 CPU 功率、網路頻寬和磁碟輸入/輸出 (I/O)。

AWS Lambda 擴充功能可輕鬆與您最愛的監控、觀察、安全和管控工具整合。Lambda 在執行環境中叫用您的函數,該環境提供了一個安全且隔離的執行時間,您的函數程式碼將在其中執行。Lambda 擴充功能與您的函數程式碼一起在 Lambda 執行環境內執行。Lambda 擴充功能可以使用 AWS Lambda 遙測 API,直接從 Lambda 擷取精細的診斷資訊 (如日誌、指標和追蹤),並將其傳送至您選擇的目的地。您也能使用擴充功能來將您偏好的安全代理程式與 Lambda 整合,所有這一切都沒有營運開銷,對您的功能性效能也只有最小影響。

相較於在 x86 處理器上執行的函數,在 Graviton2 上執行的 AWS Lambda 函數使用 AWS 設計的以 ARM 為基礎的處理器架構,提供高達 34% 的性價比。這適用於各種無伺服器工作負載,例如 Web 和行動後端、資料和媒體處理。憑藉更低的延遲、高達 19% 的效能提升、20% 的成本降低,以及 AWS 目前可用的最高能效,Graviton2 函數可用於為任務關鍵型無伺服器應用程式提供動力。

AWS Lambda 透過自動擷取日誌、指標和追蹤並將其傳送至 AWS 監控和可觀測性服務,例如 Amazon CloudWatch 和 AWS X-Ray,提供內建的監控功能。Lambda 還提供進階監控功能 (例如 Live Tail),可讓您即時檢視和分析記錄;進階日誌控制,可讓您原生擷取採用 JSON 結構化格式的日誌、控制日誌層級篩選而無需進行程式碼變更,以及自訂 Lambda 會將日誌傳送至其中的 CloudWatch 日誌群組。藉助 Application Signals,Lambda 可提供立即可用的應用程式效能監控 (APM) 工具,以追蹤無伺服器應用程式中的輸送量、可用性、延遲、故障和錯誤。Lambda Insights 會自動擷取詳細的指標,包括記憶體、CPU 和網路使用情況,從而更深入地了解 Lambda 函數的效能。此外,Lambda 還支援透過 Lambda 延伸第三方監控工具無縫整合,讓您能夠輕鬆使用您偏好的工具來監控無伺服器應用程式並進行疑難排解。