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

您现在可以使用Amazon S3转移经理(开发人员预览版)中的Amazon SDK for Java2.x 用于加速文件传输。试试一下然后告诉我们您的想法

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

调用、列出和删除Amazon Lambda功能

此部分提供使用对进行编程的示例。Lambda服务客户端通过使用Amazon SDK for Java2.x。

调用 Lambda 函数

您可以调用Lambda函数通过创建LambdaClient对象并调用它invoke方法。创建 InvokeRequest 对象可指定其他信息,例如函数名称和要传递给 Lambda 函数的负载。函数名称显示为arna: 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客户端对象并调用它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 方法。此对象包含要删除的函数的名称等信息。函数名称显示为arna: 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 代码演示如何删除Lambdafunction.

public static void deleteLambdaFunction(LambdaClient awsLambda, String functionName ) { try { //Setup an DeleteFunctionRequest 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 上的完整示例