Ruby 中的 AWS Lambda 函數處理常式 - AWS Lambda

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

Ruby 中的 AWS Lambda 函數處理常式

Lambda 函數處理常式是您的函數程式碼中處理事件的方法。當有人呼叫您的函數時,Lambda 會執行處理常式方法。函數會執行,直到處理常式傳回回應、結束或逾時為止。

以下範例中,檔案 function.rb 定義了一個名為 handler 的處理常式方法。此處理常式函式接受兩個物件做為輸入並將傳回 JSON 文件。

範例 function.rb
require 'json' def handler(event:, context:) { event: JSON.generate(event), context: JSON.generate(context.inspect) } end

在您的函數組態中,handler 設定會告知 Lambda 應至何處尋找處理常式。接續前述範例,此設定的正確值為 function.handler。其包括兩個以句點分隔的名稱:檔案的名稱和處理常式方法的名稱。

您也可以透過類別定義處理常式方法。以下範例在名為 LambdaFunctions 的模組之下透過名為 Handler 的類別定義 process 處理常式方法。

範例 source.rb
module LambdaFunctions class Handler def self.process(event:,context:) "Hello!" end end end

就本例而言,handler 設定是 source.LambdaFunctions::Handler.process

處理常式接受的兩個物件分別為叫用事件和內容。事件是 Ruby 物件,其包含了由叫用端所提供的承載。如果承載是 JSON 文件,事件物件即為 Ruby 雜湊;否則將會是字串。內容物件具有方法和各項屬性,提供了有關叫用、函式以及執行環境的資訊。

每次叫用您的 Lambda 函數時都將執行函數處理常式。位於處理常式外部的靜態程式碼則是按照函式的每一執行個體各執行一次。如果您的處理常式使用了像是開發套件用戶端和資料庫連線之類的資源,您即可由處理常式方法外部建立該等資源,以供多次叫用時重複使用。

函式的每一執行個體均可處理多個叫用事件,但是一次僅處理一個事件。在任何特定時間內處理某一事件的執行個體數目稱為函式的並行數。如需 Lambda 執行環境的詳細資訊,請參閱 Lambda 執行環境