教學課程:如何建立、上傳與叫用AWS Lambda函式 - AWS Toolkit for Eclipse

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

教學課程:如何建立、上傳與叫用AWS Lambda函式

本教學課程將指引您完成典型的程序AWS Lambda工作流程,並提供您使用 Lambda 和 Toolkit for Eclipse 第一手經驗。

重要

本教學課程假設您擁有AWS帳戶,已安裝AWSToolkit for Eclipse,並且您了解 Lambda 的基本概念和功能。如果您不熟悉 Lambda,請在Lambda首頁,並在AWSLambda 開發人員指南

建立 AWS Lambda 專案。

若要開始 Lambda 專案,您必須先在處理常式類別中將程式碼實作成方法。Toolkit for Eclipse 提供新專案精靈,協助您建立新的處理常式類別。Lambda 專案是一種 Maven 專案,其使用 POM.xml 檔案來管理套件相依性。您可以使用 Maven 命令列工具,建置、測試及部署您的應用程式。如需 Maven 的詳細資訊,請參閱 Maven 專案文件

建立 AWS Lambda 專案

  1. 在 Eclipse 工具列上,開啟 Amazon Web Services 選單 (依AWS首頁圖示),然後選擇新的AWSLambda Java 項目。或者,在 Eclipse 選單列上,選擇File (檔案)新的AWSLambda Java 專案

  2. 在相關聯的輸入方塊中,新增「專案名稱」、「群組 ID」、「成品 ID」及「類別名稱」。其中的群組 ID 和成品 ID 是用以識別 Maven 組建成品的 ID。這份教學課程會使用下列範例值:

    • Project name (專案名稱)HelloLambda

    • 群組 IDcom.example.lambda

    • 成品 IDdemo

    • 類別名稱你好

    Package Name (套件名稱) 欄位是 AWS Lambda 處理常式類別的套件命名空間。此欄位的預設值為按照 Maven 專案慣例所串接的群組 ID 和成品 ID。當 Group ID (群組 ID)Artifact ID (成品 ID) 更新時,該欄位會自動更新。

  3. 針對 Input Type (輸入類型),選擇 Custom (自訂)。如需每個可用輸入類型的資訊,請參閱「」新的AWSJava 專案對話方塊

  4. 按照下列螢幕擷取畫面,驗證您的項目 (如有差異,請予以修改),然後選取 Finish (完成)

    
                  New (新增) 中的專案名稱、群組 ID、成品 ID 和類別名稱值AWSLambda Maven 專案對話方塊

    當您輸入時,Source preview (來源預覽) 中的程式碼會隨時變更,反映您在對話方塊中所做的變更。

  5. 在選擇 Finish (完成) 後,您的 Eclipse 工作空間中會產生專案目錄和來源檔案。新的網頁瀏覽器視窗隨即開啟,並顯示README.html(這是在項目根目錄中所建立的檔案)。README.html提供說明資訊,指引您後續進行實作、測試、上傳和叫用新 Lambda 函數的步驟。請徹底閱讀前述資訊,以便熟悉此處所述步驟。

接著,在先前於 Eclipse 中為您建立的 HelloLambda Java 專案中,實作該函數。

實作處理常式方法

您可以使用 Create New Project (建立新專案) 對話方塊建立框架專案。現在,填入將在叫用 Lambda 函數時要執行的程式碼。(在本範例中,透過傳送字串到函數中的自訂事件,跟您設定方法的輸入參數時所指定的一樣。)

實作 Lambda 處理常式方法

  1. 在 Eclipse 中專案瀏覽器,開啟Hello.java中的HelloLambda專案。其包含與下列類似的程式碼。

    package com.example.lambda.demo; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; public class Hello implements RequestHandler<Object, String> { @Override public String handleRequest(Object input, Context context) { context.getLogger().log("Input: " + input); // TODO: implement your handler return "Hello from Lambda"; } }
  2. 以下列程式碼取代 handleRequest 函數的內容。

    @Override public String handleRequest(String input, Context context) { context.getLogger().log("Input: " + input); String output = "Hello, " + input + "!"; return output; }

允許 Lambda 擔任 IAM 角色

若要使 Lambda 能夠存取 Lambda 函數,您必須建立能存取您的 Lambda 函數的 IAM 角色。AWS的費用。您可以透過這兩種方式來建立角色。AWS Management Console或使用 Toolkit for Eclipse。本節說明如何在主控台中建立 IAM 角色。請參閱上傳程式碼使用 Toolkit for Eclipse 來建立一個。

建立適用於 Lambda 的 IAM 角色

  1. 登入。AWS管理主控台

  2. Services (服務) 選單中,開啟 IAM console (IAM 主控台)

  3. 在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)

  4. 適用於選取信任的實體類型中,選擇AWS服務,然後選擇Lambda將使用此角色的服務。然後選擇 Next (下一步)Permissions (許可)。

  5. 針對 Attach permissions policy (連接許可政策),選擇 AWSLambdaBasicExecutionRole。這樣即可讓 Lambda 將資源寫入您的 CloudWatch Logs 資源。然後選擇 Next (下一步)Review (檢閱)。

  6. 為您的角色新增名稱,例如 hello-lambda-role,以及角色的描述。然後選擇建立角色完成 IAM 角色的建立。

為 Lambda 程式碼建立 Amazon S3 儲存貯體

AWS Lambda在上傳時,必須使用 Amazon S3 儲存貯體來存放您的 Java 專案。您可以使用已存在於AWS執行程式碼的區域,或您可以建立一個新的區域以供 Lambda 使用 (建議)。

您可以使用這兩種方式來建立 Amazon S3 儲存貯體,透過AWS Management Console或使用 Toolkit for Eclipse。本節說明如何在主控台中建立 (3 儲存貯體)。請參閱上傳程式碼使用 Toolkit for Eclipse 來建立一個。

建立搭配 Lambda 使用的 Amazon S3 儲存貯體

  1. 登入。AWS管理主控台

  2. Services (服務) 選單中,開啟 S3 console (S3 主控台)

  3. 選擇 Create bucket (建立儲存貯體)。

  4. 輸入儲存貯體名稱,然後為儲存貯體選擇一個區域。此區域應該就是您打算執行 Lambda 函數的區域。如需 Lambda 支援區域的列表,請參閱區域與端點中的AWS一般參考

  5. 選擇 Create (建立) 來完成建立儲存貯體。

上傳程式碼

接著,將您的程式碼上傳到 AWS Lambda 中,準備使用 AWS Management Console 呼叫它。

上傳您的函數到 Lambda

  1. 右鍵單擊 Eclipse 程式碼視窗,選擇AWSLambda,然後選擇上傳功能至AWSLambda

  2. 選取目標 Lambda 函數頁面中,選擇AWS要使用的區域。這應該就是您為 Amazon S3 儲存貯體選擇的同一區域。

    
                  Select Target Lambda function (選取目標 Lambda 函數) 頁面
  3. 選擇 Create a new Lambda function (建立新的 Lambda 函數),然後輸入函數的名稱 (例如 HelloFunction)。

  4. 選擇 Next (下一步)。

  5. 函式組態頁面上,輸入目標 Lambda 函數的描述,然後選擇函數將使用的 IAM 角色和 Amazon S3 儲存貯體。

    
                  Function Configuration (函數組態) 頁面

    如需可用選項的詳細資訊,請參閱「」將函數上傳至AWSLambda 對話方塊

  6. 函式組態頁面中,選擇建立函數角色如果您想為 Lambda 函數建立新的 IAM 角色。在 Create Role (建立角色) 對話方塊中輸入角色名稱。

    
                  在 Function Configuration (函數組態) 頁面中建立新的 IAM 角色
  7. 函式組態頁面中,選擇發行新版本如果您希望上傳程式碼建立新版本的 Lambda 函數。若要進一步了解 Lambda 中的版本控制與別名,請參閱AWSLambda 函數版本控制與別名中的AWS Lambda開發人員指南

  8. 如果選擇發佈新版本,Provide an alias to this new version (為此新版本提供別名) 選項隨即啟用。如果您要將此別名與此版本的 Lambda 函數建立關聯,請選擇此選項。

  9. 函式組態頁面中,選擇建立中的函數程式碼的 S3 儲存貯體區段中,如果您想要為 Lambda 函數建立新的 Amazon S3 儲存貯體。在 Create Bucket (建立儲存貯體) 對話方塊中,輸入儲存貯體名稱。

    
                  Create Bucket (建立儲存貯體) 頁面
  10. S3 Bucket for Function Code (函數程式碼的 S3 儲存貯體) 區段中,您也可以選擇加密已上傳的程式碼。在本範例中,請保持選取 None (無)。若要進一步了解 Amazon S3 加密,請參閱使用伺服器端加密保護資料中的Amazon Simple Storage Service 使用者指南

  11. 保留 Advanced Settings (進階設定) 選項不變。Toolkit for Eclipse 您選擇默認值。選擇完成將 Lambda 函數上傳到AWS。

如果上傳成功,您所選擇的 Lambda 函數名稱就會出現在專案瀏覽器檢視。

如果您沒有看到這種情況發生,請開啟 Eclipse錯誤日誌檢視。Lambda 會寫入有關上傳失敗的相關資訊,或執行您的函數到此錯誤日誌,以讓您能夠進行偵錯。

叫用 Lambda 函數

您現在可以在 AWS Lambda 上叫用該函數。

叫用您的 Lambda 函數

  1. 右鍵按一下 Eclipse 程式碼視窗,選擇AWSLambda,然後選擇執行函數於AWSLambda

  2. 選擇您想要叫用的處理常式類別。

  3. 在輸入方塊中,輸入有效的 JSON 字串,例如」AWSLambda」。

    
                  選擇要呼叫的 Lambda 處理常式
    注意

    您可以在專案中新增 JSON 輸入檔案,而如果檔案名稱以 .json. 為結尾,則這個對話方塊就會顯示這些檔案。您可以使用此功能,為 Lambda 函數提供標準的輸入檔。

  4. 根據預設,核取 Show Live Log (顯示即時日誌) 方塊。這時 Eclipse 中,將會顯示 Lambda 函數輸出的相關日誌主控台

  5. 選擇呼叫將輸入資料傳送至 Lambda 函數。如果所有設定都正確無誤,則 Eclipse Console (主控台) 檢視中會印出函數的傳回值 (若先前未顯示,這時會自動出現)。

恭喜您,您成功地在 Eclipse IDE 中執行了第一個 Lambda 函數!

後續步驟

現在您的函數已經上傳和部署,請嘗試變更程式碼,並重新執行該函數。Lambda 會自動重新上傳該函數並進行叫用,還會將其輸出印出到 Eclipse 中。主控台

詳細資訊

如需本教學涵蓋內容各頁面的詳細資訊,以及每個選項的完整描述,請參閱AWSLambda 界面參考

如需 Lambda 的詳細資訊,以及如何為 Lambda 編寫 Java 程式碼,請參閱在 Java 中編寫 Lambda 函數中的AWS Lambda開發人員指南