계층 콘텐츠 패키징
Lambda 계층은 추가 코드 또는 데이터를 포함하는 .zip 파일 아카이브입니다. 계층에는 일반적으로 라이브러리 종속 항목, 사용자 지정 런타임 또는 구성 파일이 포함됩니다.
이 섹션에서는 계층 콘텐츠를 올바르게 패키징하는 방법을 설명합니다. 계층에 대한 개념 정보와 계층 사용을 고려하는 이유에 대한 자세한 내용은 계층으로 Lambda 종속성 관리 섹션을 참조하세요.
계층을 생성하는 첫 번째 단계는 모든 계층 콘텐츠를.zip 파일 아카이브로 번들링하는 것입니다. Lambda 함수는 Amazon Linux에서 실행되기 때문에 계층 콘텐츠는 Linux 환경에서 컴파일하고 빌드할 수 있어야 합니다.
Linux 환경에서 계층 콘텐츠가 제대로 작동하도록 하려면 Docker
각 Lambda 런타임에 대한 계층 경로
함수에 계층을 추가하면 Lambda는 계층 콘텐츠를 해당 실행 환경의 /opt
디렉터리로 추출합니다. 각 Lambda 런타임에 대해 PATH
변수에는 /opt
디렉터리 내의 특정 폴더 경로가 이미 포함되어 있습니다. Lambda가 계층 콘텐츠를 가져오도록 하려면 계층 .zip 파일의 종속성이 다음 폴더 경로에 있어야 합니다.
런타임 | 경로 |
---|---|
Node.js |
|
|
|
|
|
|
|
Python |
|
|
|
Java |
|
Ruby |
|
|
|
모든 런타임 |
|
|
다음 예제는 계층 .zip 아카이브에 폴더를 구성하는 방법을 보여줍니다.
계층 패키징, 생성, 추가에 대한 언어별 지침은 다음 페이지를 참조하세요.
-
Node.js – Node.js Lambda 함수를 위한 계층 작업
-
Python – Python Lambda 함수를 위한 계층 작업
-
Ruby – Ruby Lambda 함수를 위한 계층 작업
-
Java – Java Lambda 함수를 위한 계층 작업
-
TypeScript – TypeScript Lambda 함수를 위한 계층 작업
Go 및 Rust로 작성된 Lambda 함수의 종속성을 관리하는 데는 계층을 사용하지 않는 것이 좋습니다. 이는 이러한 언어로 작성된 Lambda 함수가 단일 실행 파일로 컴파일되어 함수를 배포할 때 Lambda에 제공하기 때문입니다. 이 실행 파일에는 컴파일된 함수 코드와 모든 종속성이 포함되어 있습니다. 계층을 사용하면 이 프로세스가 복잡해질 뿐만 아니라 함수가 초기화 단계에서 추가 어셈블리를 메모리에 수동으로 로드해야 하기 때문에 콜드 스타트 시간이 늘어납니다.
Go 및 Rust Lambda 함수와 함께 외부 종속성을 사용하려면 배포 패키지에 외부 종속성을 직접 포함하세요.