Lambda의 OS 전용 런타임을 사용해야 하는 경우
Lambda는 Java, Python, Node.js, .NET 및 Ruby에 대한 관리형 런타임을 제공합니다. 관리형 런타임으로 사용할 수 없는 프로그래밍 언어로 Lambda 함수를 생성하려면 OS 전용 런타임(provided
런타임 제품군)을 사용합니다. OS 전용 런타임에는 세 가지 기본 사용 사례가 있습니다.
-
Native Ahead-of-Time(AOT) 컴파일: Go, Rust, C++와 같은 언어는 기본적으로 실행 가능한 바이너리로 컴파일되므로 전용 언어 런타임이 필요하지 않습니다. 이러한 언어에는 컴파일된 바이너리를 실행할 수 있는 OS 환경만 필요합니다. 또한 Lambda OS 전용 런타임을 사용하여 .NET 네이티브 AOT 및 Java GraalVM 네이티브로 컴파일된 바이너리를 배포할 수 있습니다.
바이너리에 런타임 인터페이스 클라이언트를 포함해야 합니다. 런타임 인터페이스 클라이언트는 사용자 지정 런타임을 위한 Lambda 런타임 API 사용를 직접 호출하여 함수 간접 호출을 검색한 후 함수 핸들러를 직접 호출합니다. Lambda는 Go, .NET Native AOT, C++
, Rust(실험용)에 대한 런타임 인터페이스 클라이언트를 제공합니다. Linux 환경 및 함수에 사용하려는 것과 동일한 명령 세트 아키텍처(x86_64 또는 arm64)에 맞게 바이너리를 컴파일해야 합니다.
-
타사 런타임: PHP용 Bref
또는 Swift용 Swift AWS Lambda Runtime 과 같은 상용 런타임을 사용하여 Lambda 함수를 실행할 수 있습니다. -
사용자 지정 런타임: Lambda가 관리형 런타임을 제공하지 않는 언어 또는 언어 버전에 대한 자체 런타임을 구축할 수 있습니다(예: Node.js 19). 자세한 내용은 AWS Lambda에 대한 사용자 지정 런타임 빌드 단원을 참조하십시오. 이는 OS 전용 런타임의 경우 가장 흔하지 않은 사용 사례입니다.
Lambda는 다음과 같은 OS 전용 런타임을 지원합니다.
명칭 | 식별자 | 운영 체제 | 사용 중단 날짜 | 블록 함수 생성 | 블록 함수 업데이트 |
---|---|---|---|---|---|
OS 전용 런타임 |
|
Amazon Linux 2023 |
예약되지 않음 |
예약되지 않음 |
예약되지 않음 |
OS 전용 런타임 |
|
Amazon Linux 2 |
예약되지 않음 |
예약되지 않음 |
예약되지 않음 |
Amazon Linux 2023(provided.al2023
) 런타임은 작은 배포 공간과 glibc
와 같이 업데이트된 라이브러리 버전을 포함하여 Amazon Linux 2에 비해 여러 가지 이점을 제공합니다.
provided.al2023
런타임은 Amazon Linux 2의 기본 패키지 관리자인 yum
대신 dnf
를 패키지 관리자로 사용합니다. provided.al2023
및 provided.al2
간의 차이점에 대한 자세한 내용은 AWS Lambda을 위한 Amazon Linux 2023 런타임 소개