Java를 사용하여 Lambda 함수 빌드
AWS Lambda에서 Java 코드를 실행할 수 있습니다. Lambda는 이벤트 처리를 위해 코드를 실행하는 Java를 위한 런타임을 제공합니다. 코드는 사용자가 관리하는 AWS Identity and Access Management(IAM) 역할의 AWS 자격 증명이 포함된 Amazon Linux 환경에서 실행됩니다.
Lambda는 다음과 같은 Java 런타임을 지원합니다.
명칭 | 식별자 | 운영 체제 | 사용 중단 날짜 | 블록 함수 생성 | 블록 함수 업데이트 |
---|---|---|---|---|---|
Java 21 |
|
Amazon Linux 2023 |
예약되지 않음 |
예약되지 않음 |
예약되지 않음 |
Java 17 |
|
Amazon Linux 2 |
예약되지 않음 |
예약되지 않음 |
예약되지 않음 |
Java 11 |
|
Amazon Linux 2 |
예약되지 않음 |
예약되지 않음 |
예약되지 않음 |
Java 8 |
|
Amazon Linux 2 |
예약되지 않음 |
예약되지 않음 |
예약되지 않음 |
Lambda는 Java 함수를 위한 다음 라이브러리를 제공합니다.
-
com.amazonaws:aws-lambda-java-core
(필수) – 핸들러 메서드 인터페이스와 런타임이 핸들러에 전달하는 컨텍스트 객체를 정의합니다. 고유한 입력 유형을 정의하는 경우 이 라이브러리만 필요합니다. -
com.amazonaws:aws-lambda-java-events
– Lambda 함수를 호출하는 서비스의 이벤트 입력 유형입니다. -
com.amazonaws:aws-lambda-java-log4j2
– 현재 호출의 요청 ID를 함수 로그에 추가하는 데 사용할 수 있는 Apache Log4j 2용 appender 라이브러리입니다. -
AWS SDK for Java 2.0
: Java 프로그래밍 언어용 공식 AWS SDK입니다.
중요
프라이빗 필드, 메서드 또는 클래스와 같은 JDK API의 프라이빗 구성 요소를 사용하지 않습니다. 퍼블릭 API가 아닌 API 구성 요소는 변경되거나 업데이트 시 제거될 수 있으며, 이로 인해 애플리케이션이 중단될 수 있습니다.
Java 함수를 만들려면
-
Lambda 콘솔
을 엽니다. -
함수 생성(Create function)을 선택합니다.
-
다음 설정을 구성합니다:
-
함수 이름: 함수의 이름을 입력합니다.
-
런타임: Java 21을 선택합니다.
-
-
함수 생성(Create function)을 선택합니다.
-
테스트 이벤트를 구성하려면 테스트를 선택합니다.
-
이벤트 이름에
test
를 입력합니다. -
Save changes(변경 사항 저장)를 선택합니다.
-
함수를 호출하려면 테스트를 선택합니다.
콘솔은 Hello
라는 핸들러 클래스를 사용하여 Lambda 함수를 만듭니다. Java는 컴파일된 언어이므로 Lambda 콘솔에서 소스 코드를 보거나 편집할 수 없지만 구성을 수정하고 호출하고 트리거를 구성할 수 있습니다.
참고
로컬 환경에서 애플리케이션 개발을 시작하려면 이 가이드의 GitHub 리포지토리에서 사용할 수 있는 샘플 애플리케이션 중 하나를 배포하세요.
Hello
클래스에는 이벤트 객체와 컨텍스트 객체를 취하는 handleRequest
라는 이름의 함수가 있습니다. 이는 함수가 호출될 때 Lambda가 호출하는 핸들러 함수입니다. Java 함수 런타임은 Lambda에서 호출 이벤트를 가져와 핸들러로 전달합니다. 함수 구성에서 핸들러 값은 example.Hello::handleRequest
입니다.
함수의 코드를 업데이트하려면 함수 코드가 포함된 .zip 파일 아카이브인 배포 패키지를 작성합니다. 함수 개발이 진행되면 소스 제어에 함수 코드를 저장하고 라이브러리를 추가하며 배포를 자동화할 필요가 있습니다. 먼저 배포 패키지를 생성하고 명령줄에서 코드를 업데이트하세요.
함수 런타임은 호출 이벤트 외에도 컨텍스트 객체를 핸들러에 전달합니다. 컨텍스트 객체에는 호출, 함수 및 실행 환경에 관한 추가 정보가 포함되어 있습니다. 자세한 내용은 환경 변수에서 확인할 수 있습니다.
Lambda 함수는 CloudWatch Logs 로그 그룹을 함께 제공됩니다. 함수 런타임은 각 호출에 대한 세부 정보를 CloudWatch Logs에 보냅니다. 호출 중 함수가 출력하는 로그를 전달합니다. 함수가 오류를 반환하면 Lambda은 오류에 서식을 지정한 후 이를 호출자에게 반환합니다.
주제
- Java에서 Lambda 함수 핸들러 정의
- .zip 또는 JAR 파일 아카이브를 사용하여 Java Lambda 함수 배포
- 컨테이너 이미지로 Java Lambda 함수 배포
- Java Lambda 함수를 위한 계층 작업
- Lambda SnapStart를 사용하여 시작 성능 개선
- Lambda Java 함수의 직렬화 사용자 지정
- Lambda 함수의 Java 런타임 시작 동작에 대한 사용자 지정
- Lambda 컨텍스트 객체를 사용하여 Java 함수 정보 검색
- Java Lambda 함수 로깅 및 모니터링
- AWS Lambda에서 Java 코드 계측
- AWS Lambda용 Java 샘플 애플리케이션