.zip 파일 아카이브를 사용하여 Go Lambda 함수 배포 - AWS Lambda

.zip 파일 아카이브를 사용하여 Go Lambda 함수 배포

AWS Lambda 함수의 코드는 스크립트 또는 컴파일된 프로그램과 해당 종속 항목으로 구성됩니다. 함수 코드는 배포 패키지를 사용하여 Lambda에 배포합니다. Lambda는 컨테이너 이미지 및 .zip 파일 아카이브의 두 가지 배포 패키지를 지원합니다.

이 페이지에서는 Go 런타임의 배포 패키지로 .zip 파일을 생성한 다음 .zip 파일을 사용하여 AWS Management Console, AWS Command Line Interface(AWS CLI) 및 AWS Serverless Application Model(AWS SAM)에서 AWS Lambda에 함수 코드를 배포하는 방법을 설명합니다.

Lambda는 POSIX 파일 권한을 사용하므로 .zip 파일 아카이브를 생성하기 전에 배포 패키지 폴더에 대한 권한을 설정해야 할 수 있습니다.

macOS 및 Linux에서 .zip 파일 만들기

다음 단계에서는 go build 명령을 사용하여 실행 파일을 컴파일하고 Lambda용 .zip 파일 배포 패키지를 생성하는 방법을 보여줍니다. 코드를 컴파일하기 전에 GitHub에서 lambda 패키지를 설치했는지 확인하세요. 이 모듈은 Lambda와 함수 코드 간의 상호 작용을 관리하는 런타임 인터페이스의 구현을 제공합니다. 이 라이브러리를 다운로드하려면 다음 명령을 실행합니다.

go get github.com/aws/aws-lambda-go/lambda

함수에서 AWS SDK for Go를 사용하는 경우 애플리케이션에 필요한 AWS 서비스 API 클라이언트와 함께 표준 SDK 모듈 세트를 다운로드하세요. SDK for Go를 설치하는 방법을 알아보려면 Getting Started with the AWS SDK for Go V2를 참조하세요.

Go는 다른 관리형 런타임과 다른 방법으로 구현됩니다. Go는 네이티브 코드로 컴파일되므로 Lambda는 Go를 사용자 지정 런타임으로 취급합니다. provided.al2 런타임을 사용하여 Go 함수를 Lambda에 배포하는 것이 좋습니다.

.zip 배포 패키지 생성(macOS/Linux)
  1. 애플리케이션의 main.go 파일이 들어 있는 프로젝트 디렉터리에서 실행 파일을 컴파일합니다. 다음을 참조합니다.

    • 실행 파일의 이름은 bootstrap이어야 합니다. 자세한 내용은 이름 지정 섹션을 참조하세요.

    • 대상 명령 세트 아키텍처를 설정합니다. provided.al2 런타임은 arm64와 x86_64를 모두 지원합니다.

    • 선택 사항인 lambda.norpc 태그를 사용하여 lambda 라이브러리의 원격 절차 호출(RPC) 구성 요소를 제외할 수 있습니다. RPC 구성 요소는 Go 1.x 런타임을 사용할 때만 필요합니다. RPC를 제외하면 배포 패키지의 크기가 줄어듭니다.

    arm64 아키텍처의 경우:

    GOOS=linux GOARCH=arm64 go build -tags lambda.norpc -o bootstrap main.go

    x86_64 아키텍처의 경우:

    GOOS=linux GOARCH=amd64 go build -tags lambda.norpc -o bootstrap main.go
  2. (선택 사항) Linux에서 CGO_ENABLED=0 세트를 사용하여 패키지를 컴파일해야 할 수도 있습니다.

    GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o bootstrap -tags lambda.norpc main.go

    이 명령은 표준 C 라이브러리(libc) 버전에 대해 안정적인 바이너리 패키지를 만듭니다. 이 패키지는 다른 Lambda 및 다른 장치에서 다를 수 있습니다.

  3. 실행 파일을 .zip 파일로 패키지하여 배포 패키지를 만듭니다.

    zip myFunction.zip bootstrap
  4. 함수를 생성합니다. 다음을 참조합니다.

    • 핸들러 값은 bootstrap이어야 합니다. 자세한 내용은 이름 지정 섹션을 참조하세요.

    • --architectures 옵션은 arm64를 사용할 때만 필요합니다. 기본값은 x86_64입니다.

    • --role실행 역할의 Amazon 리소스 이름(ARN)을 지정합니다.

    aws lambda create-function --function-name myFunction \ --runtime provided.al2 --handler bootstrap \ --architectures arm64 \ --role arn:aws:iam::111122223333:role/lambda-ex \ --zip-file fileb://myFunction.zip

Lambda용 Go 1.x 관리형 런타임은 Amazon Linux AMI(AL1)를 기반으로 합니다. Lambda는 2023년 12월 31일에 Amazon Linux AMI에 대한 유지 관리 지원이 종료될 때까지 Go 1.x 관리형 런타임을 계속 지원할 예정입니다. Go 1.x 런타임을 사용하는 경우 함수를 provided.al2로 마이그레이션해야 합니다.

.zip 배포 패키지 생성(MacOS/Linux)
  1. 애플리케이션의 main.go 파일이 들어 있는 프로젝트 디렉터리에서 go build를 사용하여 실행 파일을 컴파일합니다.

    GOOS=linux GOARCH=amd64 go build main.go

    GOOS를 linux로 설정하고 GOARCH를 amd64로 설정하면 컴파일된 실행 파일이 Linux가 아닌 환경이나 ARM 프로세서가 있는 시스템에서 컴파일하더라도 Go 런타임과 호환됩니다.

  2. (선택 사항) main 패키지가 여러 파일로 구성된 경우 다음 go build 명령을 사용하여 패키지를 컴파일합니다.

    GOOS=linux GOARCH=amd64 go build main
  3. (선택 사항) Linux에서 CGO_ENABLED=0 세트를 사용하여 패키지를 컴파일해야 할 수도 있습니다.

    GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build main.go

    이 명령은 표준 C 라이브러리(libc) 버전에 대해 안정적인 바이너리 패키지를 만듭니다. 이 패키지는 다른 Lambda 및 다른 장치에서 다를 수 있습니다.

  4. 실행 파일을 .zip 파일로 패키지하여 배포 패키지를 만듭니다.

    zip myFunction.zip main
  5. 함수를 생성합니다. --role실행 역할의 Amazon 리소스 이름(ARN)을 지정합니다.

    aws lambda create-function --function-name myFunction \ --runtime go1.x --handler main \ --role arn:aws:iam::111122223333:role/lambda-ex \ --zip-file fileb://myFunction.zip

Windows에서 .zip 파일 만들기

다음 단계에서는 GitHub에서 Windows용 build-lambda-zip 도구를 다운로드하고, 실행 파일을 컴파일하고, .zip 배포 패키지를 생성하는 방법을 보여줍니다.

참고

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

코드를 컴파일하기 전에 GitHub에서 lambda 라이브러리를 설치했는지 확인하세요. 이 라이브러리를 다운로드하려면 다음 명령을 실행합니다.

go get github.com/aws/aws-lambda-go/lambda

함수에서 AWS SDK for Go를 사용하는 경우 애플리케이션에 필요한 AWS 서비스 API 클라이언트와 함께 표준 SDK 모듈 세트를 다운로드하세요. SDK for Go를 설치하는 방법을 알아보려면 Getting Started with the AWS SDK for Go V2를 참조하세요.

Go는 다른 관리형 런타임과 다른 방법으로 구현됩니다. Go는 네이티브 코드로 컴파일되므로 Lambda는 Go를 사용자 지정 런타임으로 취급합니다. provided.al2 런타임을 사용하여 Go 함수를 Lambda에 배포하는 것이 좋습니다.

.zip 배포 패키지 생성(Windows)
  1. GitHub에서 build-lambda-zip 도구를 다운로드합니다.

    go install github.com/aws/aws-lambda-go/cmd/build-lambda-zip@latest
  2. GOPATH의 도구를 사용하여 .zip 파일을 만듭니다. Go가 기본적으로 설치되어 있다면 도구는 보통 %USERPROFILE%\Go\bin에 있습니다. 그렇지 않다면 Go 런타임을 설치한 위치로 이동해 다음 중 하나를 수행합니다.

    cmd.exe

    cmd.exe에서 대상 명령 세트 아키텍처에 따라 다음 중 하나를 실행합니다. provided.al2 런타임은 arm64와 x86_64를 모두 지원합니다.

    선택 사항인 lambda.norpc 태그를 사용하여 lambda 라이브러리의 원격 절차 호출(RPC) 구성 요소를 제외할 수 있습니다. RPC 구성 요소는 Go 1.x 런타임을 사용할 때만 필요합니다. RPC를 제외하면 배포 패키지의 크기가 줄어듭니다.

    예 - x86_64 아키텍처의 경우
    set GOOS=linux set GOARCH=amd64 set CGO_ENABLED=0 go build -tags lambda.norpc -o bootstrap main.go %USERPROFILE%\Go\bin\build-lambda-zip.exe -o myFunction.zip bootstrap
    예 - arm64 아키텍처의 경우
    set GOOS=linux set GOARCH=arm64 set CGO_ENABLED=0 go build -tags lambda.norpc -o bootstrap main.go %USERPROFILE%\Go\bin\build-lambda-zip.exe -o myFunction.zip bootstrap
    PowerShell

    PowerShell에서 대상 명령 세트 아키텍처에 따라 다음 중 하나를 실행합니다. provided.al2 런타임은 arm64와 x86_64를 모두 지원합니다.

    선택 사항인 lambda.norpc 태그를 사용하여 lambda 라이브러리의 원격 절차 호출(RPC) 구성 요소를 제외할 수 있습니다. RPC 구성 요소는 Go 1.x 런타임을 사용할 때만 필요합니다. RPC를 제외하면 배포 패키지의 크기가 줄어듭니다.

    x86_64 아키텍처의 경우:

    $env:GOOS = "linux" $env:GOARCH = "amd64" $env:CGO_ENABLED = "0" go build -tags lambda.norpc -o bootstrap main.go ~\Go\Bin\build-lambda-zip.exe -o myFunction.zip bootstrap

    arm64 아키텍처의 경우:

    $env:GOOS = "linux" $env:GOARCH = "arm64" $env:CGO_ENABLED = "0" go build -tags lambda.norpc -o bootstrap main.go ~\Go\Bin\build-lambda-zip.exe -o myFunction.zip bootstrap
  3. 함수를 생성합니다. 다음을 참조합니다.

    • 핸들러 값은 bootstrap이어야 합니다. 자세한 내용은 이름 지정 섹션을 참조하세요.

    • --architectures 옵션은 arm64를 사용할 때만 필요합니다. 기본값은 x86_64입니다.

    • --role실행 역할의 Amazon 리소스 이름(ARN)을 지정합니다.

    aws lambda create-function --function-name myFunction \ --runtime provided.al2 --handler bootstrap \ --architectures arm64 \ --role arn:aws:iam::111122223333:role/lambda-ex \ --zip-file fileb://myFunction.zip

Lambda용 Go 1.x 관리형 런타임은 Amazon Linux AMI(AL1)를 기반으로 합니다. Lambda는 2023년 12월 31일에 Amazon Linux AMI에 대한 유지 관리 지원이 종료될 때까지 Go 1.x 관리형 런타임을 계속 지원할 예정입니다. Go 1.x 런타임을 사용하는 경우 함수를 provided.al2로 마이그레이션해야 합니다.

.zip 배포 패키지 생성(Windows)
  1. GitHub에서 build-lambda-zip 도구를 다운로드합니다.

    go install github.com/aws/aws-lambda-go/cmd/build-lambda-zip@latest
  2. GOPATH의 도구를 사용하여 .zip 파일을 만듭니다. Go가 기본적으로 설치되어 있다면 도구는 보통 %USERPROFILE%\Go\bin에 있습니다. 그렇지 않다면 Go 런타임을 설치한 위치로 이동해 다음 중 하나를 수행합니다.

    cmd.exe

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

    set GOOS=linux set GOARCH=amd64 set CGO_ENABLED=0 go build main.go %USERPROFILE%\Go\bin\build-lambda-zip.exe -o myFunction.zip main
    PowerShell

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

    $env:GOOS = "linux" $env:GOARCH = "amd64" $env:CGO_ENABLED = "0" go build main.go ~\Go\Bin\build-lambda-zip.exe -o myFunction.zip main
  3. 함수를 생성합니다. --role실행 역할의 Amazon 리소스 이름(ARN)을 지정합니다.

    aws lambda create-function --function-name myFunction \ --runtime go1.x --handler main \ --role arn:aws:iam::111122223333:role/lambda-ex \ --zip-file fileb://myFunction.zip

.zip 파일을 사용하여 Go Lambda 함수 생성 및 업데이트

.zip 배포 패키지를 생성한 후에는 이를 사용하여 새 Lambda 함수를 생성하거나 기존 함수를 업데이트할 수 있습니다. Lambda 콘솔, AWS Command Line Interface 및 Lambda API를 사용하여 .zip 패키지를 배포할 수 있습니다. AWS Serverless Application Model(AWS SAM) 및 AWS CloudFormation을 사용하여 Lambda 함수를 생성하고 업데이트할 수도 있습니다.

Lambda용 .zip 배포 패키지의 최대 크기는 250MB(압축 해제됨)입니다. 이 제한은 Lambda 계층을 포함하여 업로드하는 모든 파일의 합산 크기에 적용됩니다.

콘솔을 사용하여.zip 파일로 함수 생성 및 업데이트

새 함수를 생성하려면 먼저 콘솔에서 함수를 생성한 다음.zip 아카이브를 업로드해야 합니다. 기존 함수를 업데이트하려면 함수에 대한 페이지를 연 다음 동일한 절차에 따라 업데이트된 .zip 파일을 추가합니다.

.zip 파일이 50MB 미만인 경우 로컬 컴퓨터에서 직접 파일을 업로드하여 함수를 생성하거나 업데이트할 수 있습니다. 50MB보다 큰 .zip 파일의 경우 먼저 패키지를 Amazon S3 버킷에 업로드해야 합니다. AWS Management Console을 사용하여 Amazon S3 버킷에 파일을 업로드하는 방법에 대한 지침은 Amazon S3 시작하기를 참조하세요. AWS CLI를 사용하여 파일을 업로드하려면 AWS CLI 사용 설명서의 객체 이동을 참조하세요.

참고

.zip 아카이브를 사용하도록 기존 컨테이너 이미지 함수를 변환할 수는 없습니다. 새로운 함수를 생성해야 합니다.

새 함수 생성(콘솔)
  1. Lambda 콘솔의 함수 페이지를 열고 함수 생성을 선택합니다.

  2. 새로 작성을 선택합니다.

  3. 기본 정보에서 다음과 같이 합니다.

    1. 함수 이름에 함수 이름을 입력합니다.

    2. 런타임에서 생성한 배포 패키지 유형에 따라 다음 중 하나를 선택합니다.

      • Amazon Linux 2에서 자체 부트스트랩 제공(권장): provided.al2 런타임을 사용하여 함수를 생성하려면 이 옵션을 선택합니다.

      • Go 1.x(레거시): 이 런타임은 Amazon Linux AMI(AL1)를 기반으로 합니다. Lambda는 2023년 12월 31일에 Amazon Linux AMI에 대한 유지 관리 지원이 종료될 때까지 Go 1.x 런타임을 계속 지원할 예정입니다. 대신 provided.al2 런타임을 사용하는 것이 좋습니다.

  4. (선택 사항) 권한(Permissions)에서 기본 실행 역할 변경(Change default execution role)을 확장합니다. 새로운 실행 역할을 생성하거나 기존 실행 역할을 사용할 수 있습니다.

  5. 함수 생성(Create function)을 선택합니다. Lambda에서 선택한 런타임을 사용하여 기본 'Hello World' 함수를 생성합니다.

로컬 시스템에서 .zip 아카이브 업로드(콘솔)
  1. Lambda 콘솔의 함수 페이지에서.zip 파일을 업로드할 함수를 선택합니다.

  2. 코드 탭을 선택합니다.

  3. 코드 소스 창에서 에서 업로드를 선택합니다.

  4. .zip 파일을 선택합니다.

  5. .zip 파일을 업로드하려면 다음을 수행합니다.

    1. 업로드를 선택한 다음 파일 선택기에서.zip 파일을 선택합니다.

    2. [Open]을 선택합니다.

    3. Save를 선택합니다.

Amazon S3 버킷에서.zip 아카이브 업로드(콘솔)
  1. Lambda 콘솔의 함수 페이지에서 새 .zip 파일을 업로드할 함수를 선택합니다.

  2. 코드 탭을 선택합니다.

  3. 코드 소스 창에서 에서 업로드를 선택합니다.

  4. Amazon S3 위치를 선택합니다.

  5. .zip 파일의 Amazon S3 링크 URL을 붙여 넣고 저장을 선택합니다.

AWS CLI를 사용하여.zip 파일로 함수 생성 및 업데이트

AWS CLI를 사용하여 새 함수를 생성하거나.zip 파일로 기존 함수를 업데이트할 수 있습니다. create-function 및 update-function-code 명령을 사용하여 .zip 패키지를 배포합니다. .zip 파일이 50MB보다 작은 경우 로컬 빌드 시스템의 파일 위치에서 .zip 패키지를 업로드할 수 있습니다. 더 큰 파일의 경우 Amazon S3 버킷에서 .zip 패키지를 업로드해야 합니다. AWS CLI를 사용하여 Amazon S3 버킷에 파일을 업로드하는 방법에 대한 지침은 AWS CLI 사용 설명서의 객체 이동을 참조하세요.

참고

AWS CLI를 사용하여 Amazon S3 버킷에서 .zip 파일을 업로드하는 경우 버킷은 함수와 동일한 AWS 리전에 있어야 합니다.

AWS CLI에서 .zip 파일을 사용하여 새 함수를 생성하려면 다음을 지정해야 합니다.

  • 함수의 이름(--function-name)

  • 함수의 런타임(--runtime)

  • 함수의 실행 역할(--role)의 Amazon 리소스 이름(ARN)

  • 함수 코드에 있는 핸들러 메서드의 이름(--handler)

.zip 파일의 위치도 지정해야 합니다. .zip 파일이 로컬 빌드 시스템의 폴더에 있는 경우 다음 예제 명령과 같이 --zip-file 옵션을 사용하여 파일 경로를 지정합니다.

aws lambda create-function --function-name myFunction \ --runtime provided.al2 --handler bootstrap \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --zip-file fileb://myFunction.zip

Amazon S3 버킷에서 .zip 파일의 위치를 지정하려면 다음 예제 명령과 같이 --code 옵션을 사용합니다. 버전이 지정된 객체에만 S3ObjectVersion 파라미터를 사용해야 합니다.

aws lambda create-function --function-name myFunction \ --runtime provided.al2 --handler bootstrap \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --code S3Bucket=myBucketName,S3Key=myFileName.zip,S3ObjectVersion=myObjectVersion

CLI를 사용하여 기존 함수를 업데이트하려면 --function-name 파라미터를 사용하여 함수 이름을 지정합니다. 함수 코드를 업데이트하는 데 사용할.zip 파일의 위치도 지정해야 합니다. .zip 파일이 로컬 빌드 시스템의 폴더에 있는 경우 다음 예제 명령과 같이 --zip-file 옵션을 사용하여 파일 경로를 지정합니다.

aws lambda update-function-code --function-name myFunction \ --zip-file fileb://myFunction.zip

Amazon S3 버킷에서 .zip 파일의 위치를 지정하려면 다음 예제 명령과 같이 --s3-bucket--s3-key 옵션을 사용합니다. 버전이 지정된 객체에만 --s3-object-version 파라미터를 사용해야 합니다.

aws lambda update-function-code --function-name myFunction \ --s3-bucket myBucketName --s3-key myFileName.zip --s3-object-version myObject Version

Lambda API를 사용하여.zip 파일로 함수 생성 및 업데이트

.zip 파일 아카이브를 사용하여 함수를 생성하고 업데이트하려면 다음 API 작업을 사용합니다.

AWS SAM을 사용하여.zip 파일로 함수 생성 및 업데이트

AWS Serverless Application Model(AWS SAM)은 AWS에서 서버리스 애플리케이션을 빌드하고 실행하는 프로세스를 간소화하는 데 도움이 되는 도구 키트입니다. YAML 또는 JSON 템플릿에서 애플리케이션의 리소스를 정의하고 AWS SAM Command Line Interface(AWS SAM CLI)를 사용하여 애플리케이션을 빌드, 패키징 및 배포합니다. AWS SAM 템플릿에서 Lambda 함수를 빌드하면 AWS SAM은 함수 코드와 사용자가 지정하는 종속 항목을 사용하여 .zip 배포 패키지 또는 컨테이너 이미지를 자동으로 생성합니다. AWS SAM을 사용하여 Lambda 함수를 빌드하고 배포하는 방법에 대해 자세히 알아보려면 AWS Serverless Application Model 개발자 안내서의 Getting started with AWS SAM을 참조하세요.

AWS SAM을 사용하여 기존 .zip 파일 아카이브로 Lambda 함수를 생성할 수도 있습니다. AWS SAM을 사용하여 Lambda 함수를 생성하려면 Amazon S3 버킷 또는 빌드 시스템의 로컬 폴더에 .zip 파일을 저장할 수 있습니다. AWS CLI를 사용하여 Amazon S3 버킷에 파일을 업로드하는 방법에 대한 지침은 AWS CLI 사용 설명서의 객체 이동을 참조하세요.

AWS SAM 템플릿에서 AWS::Serverless::Function 리소스는 Lambda 함수를 지정합니다. 이 리소스에서 다음 속성을 설정하여 .zip 파일 아카이브로 함수를 생성합니다.

  • PackageType - Zip으로 설정됨

  • CodeUri - 함수 코드의 Amazon S3 URI, 로컬 폴더 경로 또는 FunctionCode 객체로 설정됨

  • Runtime - 선택한 런타임으로 설정됨

AWS SAM을 사용하면 .zip 파일이 50MB보다 큰 경우 Amazon S3 버킷에 먼저 파일을 업로드할 필요가 없습니다. AWS SAM은 로컬 빌드 시스템의 위치에서 허용되는 최대 크기 250MB(압축 해제)까지 .zip 패키지를 업로드할 수 있습니다.

AWS SAM에서 .zip 파일을 사용하여 함수를 배포하는 방법에 대해 자세히 알아보려면 AWS SAM 개발자 안내서의 AWS::Serverless::Function을 참조하세요.

예제: AWS SAM을 사용하여 provided.al2로 Go 함수 구축
  1. 다음 속성을 사용하여 AWS SAM 템플릿을 생성합니다.

    • BuildMethod: 애플리케이션의 컴파일러를 지정합니다. go1.x를 사용합니다.

    • Runtime: provided.al2를 사용합니다.

    • CodeUri: 코드 경로를 입력합니다.

    • Architectures: arm64 아키텍처의 경우 [arm64]를 사용하고, x86_64 명령 세트 아키텍처의 경우 [amd64]를 사용하거나 Architectures 속성을 제거합니다.

    예 template.yaml
    AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Resources: HelloWorldFunction: Type: AWS::Serverless::Function Metadata: BuildMethod: go1.x Properties: CodeUri: hello-world/ # folder where your main program resides Handler: bootstrap Runtime: provided.al2 Architectures: [arm64]
  2. sam build 명령을 사용하여 실행 파일을 컴파일합니다.

    sam build
  3. sam deploy 명령을 사용하여 함수를 Lambda에 배포합니다.

    sam deploy --guided

AWS CloudFormation을 사용하여.zip 파일로 함수 생성 및 업데이트

AWS CloudFormation을 사용하여 .zip 파일 아카이브로 Lambda 함수를 생성할 수 있습니다. .zip 파일에서 Lambda 함수를 생성하려면 먼저 Amazon S3 버킷에 파일을 업로드해야 합니다. AWS CLI를 사용하여 Amazon S3 버킷에 파일을 업로드하는 방법에 대한 지침은 AWS CLI 사용 설명서의 객체 이동을 참조하세요.

AWS CloudFormation 템플릿에서 AWS::Lambda::Function 리소스는 Lambda 함수를 지정합니다. 이 리소스에서 다음 속성을 설정하여 .zip 파일 아카이브로 함수를 생성합니다.

  • PackageType - Zip으로 설정됨

  • CodeS3Bucket 및 S3Key 필드에 Amazon S3 버킷 이름과 .zip 파일 이름을 입력합니다.

  • Runtime - 선택한 런타임으로 설정됨

AWS CloudFormation에서 생성하는 .zip 파일은 4MB를 초과할 수 없습니다. AWS CloudFormation에서 .zip 파일을 사용하여 함수를 배포하는 방법에 대해 자세히 알아보려면 AWS CloudFormation 사용 설명서의 AWS::Lambda::Function을 참조하세요.

종속 항목을 위한 Go 계층 생성

참고

계층을 Go와 같은 컴파일된 언어의 함수와 함께 사용하면 Python과 같은 해석된 언어의 함수와 함께 사용할 때와 같은 이점을 얻지 못할 수 있습니다. Go는 컴파일된 언어이므로 함수가 초기화 단계에서 수동으로 공유 어셈블리를 메모리로 로드해야 하기 때문에 콜드 시간 시간이 늘어날 수 있습니다. 대신 컴파일 시간에 모든 공유 코드를 포함하여 기본 제공 최적화를 활용하는 것이 좋습니다.

이 섹션의 지침은 계층에 종속 항목을 포함하는 방법을 보여줍니다.

또한 Lambda는 /opt/lib 디렉터리의 모든 라이브러리와 /opt/bin 디렉터리의 모든 바이너리를 자동으로 감지합니다. Lambda가 계층 콘텐츠를 제대로 찾을 수 있도록 다음 구조로 계층을 생성하세요.

custom-layer.zip └ lib | lib_1 | lib_2 └ bin | bin_1 | bin_2

계층을 패키징한 후 Lambda에서 계층 생성 및 삭제함수에 계층 추가을 참조하여 계층 설정을 완료합니다.