AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte
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