Go로 Lambda 함수 빌드하기

Go로 Lambda 함수 빌드하기

Go는 다른 관리형 런타임과는 구현 방식이 달라요. Go는 네이티브로 실행 가능한 바이너리로 컴파일되기 때문에 별도의 언어 런타임이 필요하지 않습니다. Go 함수를 Lambda에 배포할 때는 OS-only 런타임(provided 런타임 계열)을 사용하세요.

출처: AWS Lambda 개발자 안내서

본문

Go에서 레이어를 사용하는 방법은 Go Lambda 함수의 레이어 다루기를 참고하세요.

Topics

Go 런타임 지원

Lambda용 Go 1.x 관리형 런타임은 더 이상 사용되지 않아요(deprecated). Go 1.x 런타임을 사용하는 함수가 있다면 provided.al2023 또는 provided.al2로 함수를 마이그레이션해야 합니다. provided.al2023과 provided.al2 런타임은 go1.x보다 여러 가지 장점이 있어요. arm64 아키텍처(AWS Graviton2 프로세서) 지원, 더 작은 바이너리, 그리고 약간 더 빠른 호출 속도 등이 그 예시입니다.

이 마이그레이션에는 코드 변경이 필요 없어요. 필요한 변경은 배포 패키지를 빌드하는 방법과 함수를 만들 때 사용하는 런타임뿐입니다. 자세한 내용은 AWS Compute Blog의 Amazon Linux 2의 커스텀 런타임으로 Go1.x 런타임의 AWS Lambda 함수 마이그레이션하기를 참고하세요.

이름 식별자 운영 체제 사용 중단 날짜 함수 생성 차단 함수 업데이트 차단
OS-only 런타임 provided.al2023 Amazon Linux 2023 2029년 6월 30일 2029년 7월 31일 2029년 8월 31일

도구와 라이브러리

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 런타임을 사용합니다.

더 알아보기 (Learn more)