Invocar, listar e excluir funções do AWS Lambda - AWS SDK for Java 2.x

Invocar, listar e excluir funções do AWS Lambda

Esta seção fornece exemplos de programação com o cliente de serviço do Lambda usando o AWS SDK para Java 2.x.

Invocar uma função do Lambda

É possível invocar uma função do Lambda criando um objeto LambdaClient e invocando seu método invoke. Crie um objeto InvokeRequest para especificar informações adicionais, como o nome da função e a carga útil a serem transmitidas para a função do Lambda. Os nomes de função aparecem como arn:aws:lambda:us-east-1:123456789012:function:HelloFunction. É possível recuperar o valor examinando a função no Console de gerenciamento da AWS.

Para passar dados de carga útil para uma função, crie um objeto SdkBytes que contenha informações. Por exemplo, no exemplo de código a seguir, observe os dados JSON passados para a função do Lambda.

Importações

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;

Código da

O exemplo de código a seguir demonstra como invocar uma função do 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); } }

Veja o exemplo completo no GitHub.

Listar funções do Lambda

Crie um objeto LambdaClient e invoque seu método listFunctions. Esse método retorna um objeto ListFunctionsResponse. É possível invocar o método functions desse objeto para retornar uma lista de objetos FunctionConfiguration. É possível percorrer a lista para recuperar informações sobre as funções. Por exemplo, o exemplo de código Java a seguir mostra como obter cada nome de função.

Importações

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;

Código da

O exemplo de código Java a seguir demonstra como recuperar uma lista de nomes de função do .

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); } }

Veja o exemplo completo no GitHub.

Excluir uma função do Lambda

Crie um objeto LambdaClient e invoque seu método deleteFunction. Crie um objeto DeleteFunctionRequest e passe-o para o método deleteFunction. Esse objeto contém informações como o nome da função a ser excluída. Os nomes de função aparecem como arn:aws:lambda:us-east-1:123456789012:function:HelloFunction. É possível recuperar o valor examinando a função no Console de gerenciamento da AWS.

Importações

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;

Código da

O seguinte código Java demonstra como excluir uma função do 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); } }

Veja o exemplo completo no GitHub.