Go를 사용하여 Lambda 함수 빌드
Go는 다른 관리형 런타임과 다른 방법으로 구현됩니다. Go는 기본적으로 실행 가능한 바이너리로 컴파일되므로 전용 언어 런타임이 필요하지 않습니다. OS 전용 런타임(provided
런타임 패밀리)을 사용하여 Lambda에 Go 함수를 배포합니다.
주제
Go 런타임 지원
Lambda용 Go 1.x 관리형 런타임은 더 이상 사용되지 않습니다. Go 1.x 런타임을 사용하는 함수가 있는 경우 provided.al2023
또는 provided.al2
로 마이그레이션해야 합니다. provided.al2023
및 provided.al2
런타임은 go1.x
보다 뛰어난 몇 가지 이점을 제공하며, 여기에는 arm64 아키텍처(AWS Graviton2 프로세서), 더 작은 바이너리 및 약간 더 빠른 간접 호출 시간에 대한 지원이 해당됩니다.
이 마이그레이션에는 코드 변경이 필요 없습니다. 유일한 필수 변경 사항은 배포 패키지를 빌드하는 방법과 함수를 생성하는 데 사용하는 런타임과 관련이 있습니다. 자세한 내용은 AWS 컴퓨팅 블로그에서 Migrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2
명칭 | 식별자 | 운영 체제 | 사용 중단 날짜 | 블록 함수 생성 | 블록 함수 업데이트 |
---|---|---|---|---|---|
OS 전용 런타임 |
|
Amazon Linux 2023 |
예약되지 않음 |
예약되지 않음 |
예약되지 않음 |
OS 전용 런타임 |
|
Amazon Linux 2 |
예약되지 않음 |
예약되지 않음 |
예약되지 않음 |
도구 및 라이브러리
Lambda에서는 다음과 같은 Go 런타임용 도구 및 라이브러리를 제공합니다.
-
AWS SDK for Go
: Go 프로그래밍 언어용 공식 AWS SDK입니다. -
github.com/aws/aws-lambda-go/lambda
: Go용 Lambda 프로그래밍 모델을 구현한 것입니다. 이 패키지는 AWS Lambda에서 핸들러를 호출하기 위해 사용됩니다. -
github.com/aws/aws-lambda-go/lambdacontext
: 컨텍스트 객체에서 컨텍스트 정보에 액세스하기 위한 헬퍼입니다. -
github.com/aws/aws-lambda-go/events
: 이 라이브러리는 일반적인 이벤트 소스 통합을 위한 유형 정의를 제공합니다. -
github.com/aws/aws-lambda-go/cmd/build-lambda-zip
: 이 도구를 사용하여 Windows에서 .zip 파일 아카이브를 생성할 수 있습니다.
자세한 내용은 GitHub의 aws-lambda-go
Lambda에서는 다음과 같은 Go 런타임용 샘플 애플리케이션을 제공합니다.