AWS Lambda
개발자 가이드

AWS Lambda 배포 패키지(Go)

Lambda 함수를 생성하려면 먼저 코드(Go 실행 파일)와 종속 프로그램으로 구성된 ZIP 파일인 Lambda 함수 배포 패키지를 만듭니다.

배포 패키지를 생성한 후에는 이를 직접 업로드하거나 Lambda 함수를 생성하고 싶은 동일한 AWS 리전의 Amazon S3 버킷에 .zip 파일을 먼저 업로드한 다음, 콘솔이나 AWS CLI를 사용하여 Lambda 함수를 생성할 때 버킷 이름과 객체 키 이름을 지정할 수 있습니다.

go get으로 Go용 Lambda 라이브러리를 다운로드하고 실행 파일을 컴파일합니다.

~/my-function$ go get github.com/aws/aws-lambda-go/lambda ~/my-function$ GOOS=linux go build main.go

GOOSlinux로 설정하면 컴파일된 실행 파일이 Linux 외의 환경에서 컴파일되더라도 Go 런타임과 호환되도록 할 수 있습니다.

ZIP 파일 내 실행 파일 패키징으로 배포 패키지를 생성하고 AWS CLI를 사용하여 함수를 생성합니다. 핸들 파라미터는 사용자의 핸들러가 포함된 실행 파일의 이름과 일치해야 합니다.

~/my-function$ zip function.zip main ~/my-function$ aws lambda create-function --function-name my-function --runtime go1.x \ --zip-file fileb://function.zip --handler main \ --role arn:aws:iam::123456789012:role/execution_role

Windows에서 배포 패키지 만들기

Windows를 사용해 AWS Lambda에서 실행할 .zip 파일을 생성할 경우, build-lambda-zip 도구를 설치할 것을 권장합니다.

참고

설치를 아직 수행하지 않았다면 git를 설치한 후 git 실행 파일을 Windows %PATH% 환경 변수에 추가해야 합니다.

이 도구를 다운로드하려면 다음 명령을 실행합니다.

go.exe get -u github.com/aws/aws-lambda-go/cmd/build-lambda-zip

GOPATH에서 이 도구를 사용합니다. Go가 기본적으로 설치되어 있다면 도구는 보통 %USERPROFILE%\Go\bin에 위치하게 됩니다. 그렇지 않다면 Go 런타임을 설치한 위치로 이동해 다음을 수행합니다.

cmd.exe 파일에서 다음을 실행합니다.

set GOOS=linux go build -o main main.go %USERPROFILE%\Go\bin\build-lambda-zip.exe -o main.zip main

Powershell에서 다음을 실행합니다.

$env:GOOS = "linux" go build -o main main.go ~\Go\Bin\build-lambda-zip.exe -o main.zip main