叫用、列出和刪除 Lambda 函數 - AWS SDK for Java 1.x

AWS SDK for Java 1.x 已於 2025 年 12 月 31 日end-of-support。我們建議您遷移至 AWS SDK for Java 2.x,以繼續接收新功能、可用性改善和安全性更新。

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

叫用、列出和刪除 Lambda 函數

本節提供使用 搭配 Lambda 服務用戶端進行程式設計的範例 AWS SDK for Java。若要了解如何建立 Lambda 函數,請參閱如何建立 AWS Lambda 函數

呼叫函數

您可以透過建立 AWSLambda 物件並叫用其invoke方法來叫用 Lambda 函數。建立 InvokeRequest 物件以指定其他資訊,例如函數名稱和要傳遞給 Lambda 函數的承載。函數名稱會顯示為 arn:aws:lambda:us-east-1:555556330391:function:HelloFunction。您可以查看 中的 函數來擷取值 AWS 管理主控台。

若要將承載資料傳遞至函數,請呼叫 InvokeRequest 物件的 withPayload方法,並以 JSON 格式指定字串,如下列程式碼範例所示。

匯入

import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.lambda.AWSLambda; import com.amazonaws.services.lambda.AWSLambdaClientBuilder; import com.amazonaws.services.lambda.model.InvokeRequest; import com.amazonaws.services.lambda.model.InvokeResult; import com.amazonaws.services.lambda.model.ServiceException; import java.nio.charset.StandardCharsets;

Code

下列程式碼範例示範如何叫用 Lambda 函數。

String functionName = args[0]; InvokeRequest invokeRequest = new InvokeRequest() .withFunctionName(functionName) .withPayload("{\n" + " \"Hello \": \"Paris\",\n" + " \"countryCode\": \"FR\"\n" + "}"); InvokeResult invokeResult = null; try { AWSLambda awsLambda = AWSLambdaClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(Regions.US_WEST_2).build(); invokeResult = awsLambda.invoke(invokeRequest); String ans = new String(invokeResult.getPayload().array(), StandardCharsets.UTF_8); //write out the return value System.out.println(ans); } catch (ServiceException e) { System.out.println(e); } System.out.println(invokeResult.getStatusCode());

請參閱 GitHub 上的完整範例

列出函數

建置 AWSLambda 物件並叫用其listFunctions方法。此方法會傳回 ListFunctionsResult 物件。您可以叫用此物件的 getFunctions 方法來傳回 FunctionConfiguration 物件的清單。您可以逐一查看清單以擷取函數的相關資訊。例如,下列 Java 程式碼範例示範如何取得每個函數名稱。

匯入

import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.lambda.AWSLambda; import com.amazonaws.services.lambda.AWSLambdaClientBuilder; import com.amazonaws.services.lambda.model.FunctionConfiguration; import com.amazonaws.services.lambda.model.ListFunctionsResult; import com.amazonaws.services.lambda.model.ServiceException; import java.util.Iterator; import java.util.List;

Code

下列 Java 程式碼範例示範如何擷取 Lambda 函數名稱清單。

ListFunctionsResult functionResult = null; try { AWSLambda awsLambda = AWSLambdaClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(Regions.US_WEST_2).build(); functionResult = awsLambda.listFunctions(); List<FunctionConfiguration> list = functionResult.getFunctions(); for (Iterator iter = list.iterator(); iter.hasNext(); ) { FunctionConfiguration config = (FunctionConfiguration)iter.next(); System.out.println("The function name is "+config.getFunctionName()); } } catch (ServiceException e) { System.out.println(e); }

請參閱 GitHub 上的完整範例

刪除函數

建置 AWSLambda 物件並叫用其deleteFunction方法。建立一個 DeleteFunctionRequest 物件並將其傳遞給 deleteFunction 方法。此物件包含資訊,例如要刪除的函數名稱。函數名稱會顯示為 arn:aws:lambda:us-east-1:555556330391:function:HelloFunction。您可以透過查看 中的 函數來擷取值 AWS 管理主控台。

匯入

import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.lambda.AWSLambda; import com.amazonaws.services.lambda.AWSLambdaClientBuilder; import com.amazonaws.services.lambda.model.ServiceException; import com.amazonaws.services.lambda.model.DeleteFunctionRequest;

Code

下列 Java 程式碼示範如何刪除 Lambda 函數。

String functionName = args[0]; try { AWSLambda awsLambda = AWSLambdaClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(Regions.US_WEST_2).build(); DeleteFunctionRequest delFunc = new DeleteFunctionRequest(); delFunc.withFunctionName(functionName); //Delete the function awsLambda.deleteFunction(delFunc); System.out.println("The function is deleted"); } catch (ServiceException e) { System.out.println(e); }

請參閱 GitHub 上的完整範例