调用、列出和删除 Amazon Lambda 函数 - Amazon SDK for Java 2.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

调用、列出和删除 Amazon Lambda 函数

本节提供了使用 Amazon SDK for Java 2.x 使用 Lambda 服务客户端进行编程的示例。

调用 Lambda 函数

您可以通过创建LambdaClient对象并调用其invoke方法来调用 Lambda 函数。创建一个InvokeRequest对象以指定其他信息,例如要传递给函数的函数名称和有效负载。 Lambda 函数名称显示为 arn: aws: lambda: us-east-1:123456789012: function:。HelloFunction可以通过查看 Amazon Web Services Management Console中的函数来检索值。

要将负载数据传递给函数,请创建一个包含信息的SdkBytes对象。例如,在以下代码示例中,请注意传递给 Lambda 函数的 JSON 数据。

导入

import software.amazon.awssdk.services.lambda.LambdaClient; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.lambda.model.InvokeRequest; import software.amazon.awssdk.core.SdkBytes; import software.amazon.awssdk.services.lambda.model.InvokeResponse; import software.amazon.awssdk.services.lambda.model.LambdaException;

代码

以下代码示例演示了如何调用 Lambda 函数。

public static void invokeFunction(LambdaClient awsLambda, String functionName) { InvokeResponse res = null ; try { //Need a SdkBytes instance for the payload String json = "{\"Hello \":\"Paris\"}"; SdkBytes payload = SdkBytes.fromUtf8String(json) ; //Setup an InvokeRequest InvokeRequest request = InvokeRequest.builder() .functionName(functionName) .payload(payload) .build(); res = awsLambda.invoke(request); String value = res.payload().asUtf8String() ; System.out.println(value); } catch(LambdaException e) { System.err.println(e.getMessage()); System.exit(1); } }

请参阅上的完整示例 GitHub。

列出 Lambda 函数

生成一个Lambda Client对象并调用其listFunctions方法。此方法返回一个ListFunctionsResponse对象。您可以调用此对象的functions方法来返回FunctionConfiguration对象列表。可以遍历该列表来检索有关函数的信息。例如,以下 Java 代码示例说明如何获取每个函数名称。

导入

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.lambda.LambdaClient; import software.amazon.awssdk.services.lambda.model.LambdaException; import software.amazon.awssdk.services.lambda.model.ListFunctionsResponse; import software.amazon.awssdk.services.lambda.model.FunctionConfiguration; import java.util.List;

代码

以下 Java 代码示例演示如何检索 函数名称的列表。

public static void listFunctions(LambdaClient awsLambda) { try { ListFunctionsResponse functionResult = awsLambda.listFunctions(); List<FunctionConfiguration> list = functionResult.functions(); for (FunctionConfiguration config: list) { System.out.println("The function name is "+config.functionName()); } } catch(LambdaException e) { System.err.println(e.getMessage()); System.exit(1); } }

请参阅上的完整示例 GitHub。

删除 Lambda 函数

生成一个LambdaClient对象并调用其deleteFunction方法。创建一个DeleteFunctionRequest对象并将其传递给deleteFunction方法。此对象包含要删除的函数的名称等信息。函数名称显示为 arn: aws: lambda: us-east-1:123456789012: function:。HelloFunction可以通过查看 Amazon Web Services Management Console中的函数来检索值。

导入

import software.amazon.awssdk.services.lambda.LambdaClient; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.lambda.model.DeleteFunctionRequest; import software.amazon.awssdk.services.lambda.model.LambdaException;

代码

以下 Java 代码演示了如何删除 Lambda 函数。

public static void deleteLambdaFunction(LambdaClient awsLambda, String functionName ) { try { DeleteFunctionRequest request = DeleteFunctionRequest.builder() .functionName(functionName) .build(); awsLambda.deleteFunction(request); System.out.println("The "+functionName +" function was deleted"); } catch(LambdaException e) { System.err.println(e.getMessage()); System.exit(1); } }

请参阅上的完整示例 GitHub。