Lambda 함수 및 Java 21 런타임이 포함된 Lambda 계층의 사용이 콜드(SnapStart 활성화 여부에 관계없이) 및 웜 시작 시간에 어떤 영향을 미치는지 조사하기 위한 준비로서 생성 방법에 대해 소개하고 싶습니다. SAM 템플릿의 Java(21) Lambda 함수에 대한 레이어를 게시하고 사용합니다.
Lambda 레이어는 보충 코드나 데이터가 포함된 .zip 파일 아카이브입니다. 레이어에는 일반적으로 라이브러리 종속성, 사용자 정의 런타임 또는 구성 파일이 포함됩니다.
레이어 사용을 고려하는 데는 여러 가지 이유가 있습니다.
탐색을 위해 다음 종속성을 계층에 패키징하는 Java 21 런타임으로 Lambda 계층을 생성하기 위한 샘플 애플리케이션을 사용합니다.
Lambda 레이어를 생성하려면 다음이 필요합니다.
Lambda 계층을 사용하려면 단일 uber-jar에 종속성을 구축해야 합니다. 이를 위해 pom.xml에 두 개의 플러그인을 사용합니다. maven-compiler-plugin은 소스 코드를 컴파일합니다. maven-shade-plugin은 아티팩트를 단일 uber-jar로 패키징합니다. 그런 다음 실행해야 합니다
mvn clean package
애플리케이션을 구축합니다.
Java 런타임을 사용하여 Lambda 함수에 계층을 추가하면 Lambda는 해당 실행 환경의 /opt 디렉터리에 계층 콘텐츠를 로드합니다. 각 Lambda 런타임에 대해 PATH 변수에는 이미 /opt 디렉터리 내의 특정 폴더 경로가 포함되어 있습니다. PATH 변수가 레이어 콘텐츠를 선택하도록 하려면 레이어 .zip 파일이 다음 폴더 경로에 종속성을 가져야 합니다. java/lib
예를 들어 샘플 애플리케이션으로 생성한 결과 레이어 .zip 파일의 디렉터리 구조는 다음과 같습니다.
aws-pure-java-21-common-lambda-layer-content.zip └ java └ lib └ aws-pure-java-21-common-lambda-layer-1.0.0-SNAPSHOT.jar
Linux에서 다음 명령을 실행하면 얻을 수 있습니다.
Java 21 런타임을 사용하여 이 Lambda 계층을 게시하려면 AWS CLI v2에서 다음 명령을 실행해야 합니다.
aws lambda publish-layer-version --layer-name aws-pure-java-21-common-lambda-layer --zip-file fileb://aws-pure-java-21-common-lambda-layer-content.zip --compatible-runtimes java21
추가 매개변수 -- Compatible-architectures "x86"을 사용하면 x86(기본값) 또는 arm64와 같은 호환 가능한 하드웨어 아키텍처를 정의할 수 있습니다.
응답으로 AWS는 나중에 참조해야 할 Lambda 계층 ARN을 제공하며 이는 다음과 유사합니다.
arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:layer:aws-pure-java-21-common-lambda-layer:1
마지막 매개변수는 Lambda 레이어 버전으로, 레이어를 처음 게시할 때 항상 1이고 기존 Lambda 레이어의 후속 업데이트로 1씩 증가합니다.
기능에 레이어를 연결하기 위해 다음을 수행할 수 있습니다.
Type: AWS::Serverless::Function Properties: FunctionName: GetProductByIdWithPureJava21LambdaWithCommonLayer AutoPublishAlias: liveVersion Layers: - !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:layer:aws-pure-java-21-common-lambda-layer:1 Handler: software.amazonaws.example.product.handler.GetProductByIdHandler::handleRequest
In this article I gave an introduction about how to create, publish and use layers for Java 21 Lambda functions AWS CLI v2 and the SAM template. In the next article published under the AWS Lambda SnapStart series I'll explore how the usage of the (different) Lambda layers with function having Java 21 runtime affects the cold (with and without enabling SnapStart) and warm start times.
위 내용은 Java Lambda 함수용 레이어를 생성, 게시 및 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!