Lambda 함수 호출, 나열 및 삭제 - AWS SDK for Java 1.x

다음 버전 AWS SDK for Java (v1) end-of-support 을 발표했습니다. AWS SDK for Java V2로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Lambda 함수 호출, 나열 및 삭제

이 단원에서는 AWS SDK for Java를 사용하여 Lambda 서비스 클라이언트를 통해 프로그래밍하는 예제를 제공합니다. Lambda 함수 생성 방법에 대한 자세한 내용은 AWS Lambda 함수 생성 방법을 참조하세요.

함수 호출.

AWSLambda 객체를 만들고 객체의 invoke 메서드를 호출하여 Lambda 함수를 호출할 수 있습니다. InvokeRequest 객체를 만들어 Lambda 함수에 전달할 함수 이름 및 페이로드와 같은 추가 정보를 지정합니다. 함수 이름은 arn:aws:lambda:us-east-1:555556330391:function:HelloFunction과 같이 나타납니다. AWS Management Console에서 함수를 확인해 값을 검색할 수 있습니다.

함수에 페이로드 데이터를 전달하려면 InvokeRequest 객체의 withPayload 메서드를 호출하고 다음 코드 예제와 같이 JSON 형식으로 문자열을 지정합니다.

가져오기

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;

코드

다음 코드 예제는 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());

GitHub의 전체 예제를 참조하십시오.

함수 나열

AWSLambda 객체를 빌드하고 객체의 listFunctions 메서드를 호출합니다. 이 메서드는 ListFunctionsResult 객체를 반환합니다. 이 객체의 getFunctions 메서드를 호출하여 FunctionConfiguration 객체 목록을 반환할 수 있습니다. 목록을 반복하여 함수에 대한 정보를 검색할 수 있습니다. 예를 들어 다음 Java 코드 예제는 각 함수 이름을 가져오는 방법을 보여줍니다.

가져오기

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;

코드

다음 Java 코드 예제는 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); }

GitHub의 전체 예제를 참조하십시오.

함수 삭제

AWSLambda 객체를 빌드하고 객체의 deleteFunction 메서드를 호출합니다. DeleteFunctionRequest 객체를 만들고 deleteFunction 메서드에 전달합니다. 이 개체에는 삭제할 함수의 이름과 같은 정보가 포함되어 있습니다. 함수 이름은 arn:aws:lambda:us-east-1:555556330391:function:HelloFunction과 같이 나타납니다. AWS Management Console에서 함수를 확인해 값을 검색할 수 있습니다.

가져오기

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;

코드

다음 Java 코드는 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); }

GitHub의 전체 예제를 참조하십시오.