Go를 사용하여 Lambda 함수 빌드 - AWS Lambda

Go를 사용하여 Lambda 함수 빌드

Go는 다른 관리형 런타임과 다른 방법으로 구현됩니다. Go는 기본적으로 실행 가능한 바이너리로 컴파일되므로 전용 언어 런타임이 필요하지 않습니다. OS 전용 런타임(provided 런타임 패밀리)을 사용하여 Lambda에 Go 함수를 배포합니다.

Go 런타임 지원

Lambda용 Go 1.x 관리형 런타임은 더 이상 사용되지 않습니다. Go 1.x 런타임을 사용하는 함수가 있는 경우 provided.al2023 또는 provided.al2로 마이그레이션해야 합니다. provided.al2023provided.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 전용
명칭 식별자 운영 체제 사용 중단 날짜 블록 함수 생성 블록 함수 업데이트

OS 전용 런타임

provided.al2023

Amazon Linux 2023

OS 전용 런타임

provided.al2

Amazon Linux 2

도구 및 라이브러리

Lambda에서는 다음과 같은 Go 런타임용 도구 및 라이브러리를 제공합니다.

자세한 내용은 GitHub의 aws-lambda-go를 참조하세요.

Lambda에서는 다음과 같은 Go 런타임용 샘플 애플리케이션을 제공합니다.

Go의 샘플 Lambda 애플리케이션
  • go-al2 – 퍼블릭 IP 주소를 반환하는 hello world 함수입니다. 이 앱은 provided.al2 사용자 지정 런타임을 사용합니다.

  • blank-go – Lambda의 Go 라이브러리, 로깅, 환경 변수 및 AWS SDK를 사용하는 방법을 보여주는 Go 함수입니다. 이 앱은 go1.x 런타임을 사용합니다.