AWS Lambda 함수를 호출, 나열, 삭제
이 단원에서는 AWS SDK for Java 2.x를 사용하여 Lambda 서비스 클라이언트를 통해 프로그래밍하는 예제를 제공합니다.
Lambda 함수를 호출합니다.
LambdaClientinvoke 메서드를 호출하여 Lambda 함수를 호출할 수 있습니다. InvokeRequest
함수에 페이로드 데이터를 전달하려면 정보가 포함된 SdkBytes
가져옵니다.
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 함수 나열
LambdaClient 객체를 구축하고 listFunctions 메서드를 호출합니다. 이 메서드는 ListFunctionsResponseFunctionConfigurationfunctions 메서드를 호출할 수 있습니다. 목록을 반복하여 함수에 대한 정보를 검색할 수 있습니다. 예를 들어 다음 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 함수 삭제
LambdaClientdeleteFunction 메서드를 호출합니다. DeleteFunctionRequestdeleteFunction 메서드에 전달합니다. 이 개체에는 삭제할 함수의 이름과 같은 정보가 포함되어 있습니다. 함수 이름은 arn:aws:lambda:us-east-1:123456789012:function:HelloFunction과 같이 나타납니다. AWS Management 콘솔에서 함수를 확인해 값을 검색할 수 있습니다.
가져옵니다.
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의 전체 예제