Invocar, enumerar y eliminar funciones de Lambda - AWS SDK para Java 1.x

AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Invocar, enumerar y eliminar funciones de Lambda

En esta sección se proporcionan ejemplos de programación con el cliente de servicio de Lambda mediante el AWS SDK para Java. Para aprender a crear una función Lambda, consulte Cómo crear funciones AWS Lambda.

Invocar una función

Puede invocar una función Lambda creando un objeto AWSLambda e invocando su método invoke. Cree un objeto InvokeRequest para especificar información adicional, como el nombre de la función y la carga útil que pasar a la función Lambda. Los nombres de funciones aparecen como arn:aws:lambda:us-east-1:555556330391:function:HelloFunction. Puede recuperar el valor viendo la función en la Consola de administración de AWS.

Para pasar datos de carga útil a una función, invoque el método withPayload del objeto InvokerEquest y especifique una cadena en formato JSON, como se muestra en el siguiente ejemplo de código.

Importaciones

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;

Código de

En el ejemplo de código siguiente se muestra cómo invocar una función 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());

Consulte el ejemplo completo en Github.

Lista de funciones

Construya un objeto AWSLambda e invoque su método listFunctions. Este método devuelve un objeto ListFunctionsResult. Puede invocar el método getFunctions de este objeto para devolver una lista de objetos FunctionConfiguration. Puede recorrer la lista en iteración para recuperar información sobre las funciones. Por ejemplo, el siguiente ejemplo de código Java muestra cómo obtener el nombre de cada función.

Importaciones

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;

Código de

El siguiente ejemplo de código Java muestra cómo recuperar una lista de nombres de funciones de 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); }

Consulte el ejemplo completo en Github.

Eliminar una función

Construya un objeto AWSLambda e invoque su método deleteFunction. Cree un objeto DeleteFunctionRequest y páselo al método deleteFunction. Este objeto contiene información como el nombre de la función que se va a eliminar. Los nombres de funciones aparecen como arn:aws:lambda:us-east-1:555556330391:function:HelloFunction. Puede recuperar el valor viendo la función en la Consola de administración de AWS.

Importaciones

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;

Código de

El siguiente código Java muestra cómo eliminar una función 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); }

Consulte el ejemplo completo en Github.