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

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

Lambda 함수를 만들 때 배포 패키지에 함수 코드를 패키징합니다. Lambda는 컨테이너 이미지.zip 파일 아카이브라는 두 가지 배포 패키지를 지원합니다. 함수를 만드는 워크플로는 배포 패키지 유형에 따라 다릅니다. 컨테이너 이미지로 정의된 함수를 구성하려면 Lambda 컨테이너 이미지 작업 섹션을 참조하세요.

Lambda 콘솔과 Lambda API를 사용하여 .zip 파일 아카이브로 정의된 함수를 만들 수 있습니다. 업데이트된 .zip 파일을 업로드하여 함수 코드를 변경할 수도 있습니다.

참고

기존 함수의 배포 패키지 유형(.zip 또는 컨테이너 이미지)은 변경할 수 없습니다. 예를 들어 .zip 파일 아카이브를 사용하도록 컨테이너 이미지 함수를 변환할 수는 없습니다. 새로운 함수를 생성해야 합니다.

함수 생성

.zip 파일 아카이브로 정의된 함수를 만들 때 코드 템플릿, 언어 버전, 함수의 실행 역할을 선택합니다. Lambda가 함수를 생성하면 함수 코드를 추가합니다.

함수를 만들려면
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 함수 생성을 선택합니다.

  3. 함수 생성을 위해 새로 작성 또는 블루프린트 사용을 선택합니다.

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

    1. 함수 이름(Function name)에 함수 이름을 입력합니다. 함수 이름은 64자로 제한됩니다.

    2. 런타임에서 함수에 사용할 언어 버전을 선택합니다.

    3. (선택 사항) [아키텍처(Architecture)]에서 함수에 사용할 명령 세트 아키텍처를 선택합니다. 기본 아키텍처는 x86_64입니다. 함수의 배포 패키지를 빌드할 때 해당 이미지가 이 명령 세트 아키텍처와 호환되는지 확인합니다.

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

  6. (선택 사항) Advanced settings(고급 설정)를 확장합니다. 함수에 대한 코드 서명 구성을 선택할 수 있습니다. 액세스할 함수에 대해 (Amazon VPC)를 구성할 수도 있습니다.

  7. 함수 생성을 선택합니다.

Lambda가 새 함수를 생성합니다. 이제 콘솔을 사용하여 함수 코드를 추가하고 다른 함수 파라미터와 기능을 구성할 수 있습니다. 코드 배포 지침은 함수에서 사용하는 런타임의 핸들러 페이지를 참조하세요.

Node.js

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

Python

Python Lambda 함수에 대한 .zip 파일 아카이브 작업

Ruby

Ruby Lambda 함수에 대한 .zip 파일 아카이브 작업

Java

.zip 또는 JAR 파일 아카이브를 사용하여 Java Lambda 함수 배포

Go

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

C#

.zip 파일 아카이브를 사용하여 C# Lambda 함수를 빌드 및 배포

PowerShell

.zip PowerShell 파일 아카이브와 함께 Lambda 함수 배포

콘솔 코드 편집기 사용

콘솔은 단일 소스 파일로 Lambda 함수를 생성합니다. 스크립트 언어에 맞게 기본 제공 코드 편집기에서 이 파일을 편집하고 더 많은 파일을 추가할 수 있습니다. 변경 사항을 저장하려면 [Save]를 선택합니다. 그런 다음 코드를 실행하려면 테스트를 선택합니다.

참고

Lambda 콘솔은 AWS Cloud9를 사용하여 브라우저에서 통합 개발 환경(IDE)을 제공합니다. AWS Cloud9을 사용하면 자신의 환경에서 Lambda 함수를 개발할 수도 있습니다. 자세한 내용은 AWS Cloud9 사용 설명서의 Working with AWS Lambda functions using the AWS Toolkit을 참조하세요.

함수 코드를 저장하면 Lambda 콘솔에서 .zip 파일 아카이브 배포 패키지를 만듭니다. 콘솔 외부에서 (IDE를 사용해) 함수 코드를 개발하는 경우 Lambda 함수에 코드를 업로드하려면 배포 패키지를 생성해야 합니다.

함수 코드 업데이트

스크립트 언어(Node.js, Python, Ruby)에 맞게 내장된 코드 편집기에서 함수 코드를 편집할 수 있습니다. 코드가 3MB보다 크거나 라이브러리를 추가해야 하는 경우 또는 편집기가 지원하지 않는 언어(Java, Go, C#)의 경우, 함수 코드를 .zip 아카이브로 업로드해야 합니다. .zip 파일 아카이브가 50MB보다 작은 경우, 로컬 시스템에서 .zip 파일 아카이브를 업로드할 수 있습니다. 파일이 50MB보다 큰 경우 Amazon S3 버킷에서 함수로 파일을 업로드합니다.

함수 코드를 .zip 아카이브로 업로드하려면
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 업데이트할 함수를 선택하고 코드 탭을 선택합니다.

  3. 코드 소스(Code source)에서 업로드(Upload from)를 선택합니다.

  4. .zip 파일을 선택한 후 [업로드(Upload)]를 선택합니다.

    1. 파일 선택기에서 새 이미지 버전을 선택하고 [열기(Open)]와 [저장(Save)]을 차례로 선택합니다.

  5. (4단계의 대안) Amazon S3 위치를 선택합니다.

    1. 텍스트 상자에서 .zip 파일 아카이브의 S3 링크 URL을 입력한 후 저장을 선택합니다.

런타임 변경

새 런타임을 사용하도록 함수 구성을 업데이트하는 경우, 새 런타임과 호환되도록 함수 코드를 업데이트해야 할 수 있습니다. 다른 런타임을 사용하도록 함수 구성을 업데이트하는 경우, 런타임 및 아키텍처와 호환되는 새로운 함수 코드를 제공해야 합니다. 함수 코드의 배포 패키지를 만드는 방법에 대한 지침은 함수가 사용하는 런타임의 핸들러 페이지를 참조하세요.

런타임을 변경하려면
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 업데이트할 함수를 선택하고 코드 탭을 선택합니다.

  3. 코드 편집기 아래에 있는 런타임 설정 섹션까지 아래로 스크롤합니다.

  4. 편집을 선택합니다.

    1. Runtime(런타임)에서 런타임 식별자를 선택합니다.

    2. 핸들러에서 함수의 파일 이름과 핸들러를 지정합니다.

    3. [아키텍처(Architecture)]에서 함수에 사용할 명령 세트 아키텍처를 선택합니다.

  5. Save(저장)를 선택합니다.

아키텍처 변경

명령 세트 아키텍처를 변경하려면 먼저 함수의 코드가 대상 아키텍처와 호환되는지 확인해야 합니다.

Node.js, Python 또는 Ruby를 사용하고 내장된 편집기에서 함수 코드를 편집할 경우, 기존 코드는 수정 없이 실행될 수 있습니다.

그러나 .zip 파일 아카이브 배포 패키지를 사용하여 함수 코드를 제공하는 경우에는 대상 런타임 및 명령 세트 아키텍처에 맞게 올바르게 컴파일되고 빌드되는 새로운 .zip 파일 아카이브를 준비해야 합니다. 자세한 내용은 함수 런타임의 핸들러 페이지를 참조하세요.

명령 세트 아키텍처를 변경하려면
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 업데이트할 함수를 선택하고 코드 탭을 선택합니다.

  3. 런타임 설정에서 편집을 선택합니다.

  4. [아키텍처(Architecture)]에서 함수에 사용할 명령 세트 아키텍처를 선택합니다.

  5. Save(저장)를 선택합니다.

Lambda API 사용

.zip 파일 아카이브를 사용하는 함수를 만들고 구성하려면 다음 API 작업을 사용합니다.

AWS CloudFormation

AWS CloudFormation을 사용해 .zip 파일 아카이브를 사용하는 Lambda 함수를 생성할 수 있습니다. AWS CloudFormation 템플릿에서 AWS::Lambda::Function 리소스는 Lambda 함수를 지정합니다. AWS::Lambda::Function 리소스의 속성에 대한 설명은 AWS CloudFormation 사용 설명서AWS::Lambda::Function을 참조하세요.

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

  • AWS::Lambda::Function

    • PackageType - Zip(으)로 설정합니다.

    • 코드 - S3BucketS3Key 필드에 Amazon S3 버킷 이름과 .zip 파일 이름을 입력합니다. Node.js 또는 Python의 경우 Lambda 함수의 인라인 소스 코드를 제공할 수 있습니다.

    • 런타임 - 런타임 값을 설정합니다.

    • 아키텍처 - AWS Graviton2 프로세서를 사용하도록 아키텍처 값을 arm64로 설정합니다. 기본적으로, 아키텍처 값은 x86_64입니다.