Lambda에서 계층 생성 및 삭제 - AWS Lambda

Lambda에서 계층 생성 및 삭제

Lambda 계층은 추가 코드 또는 데이터를 포함하는 .zip 파일 아카이브입니다. 계층에는 일반적으로 라이브러리 종속 항목, 사용자 지정 런타임 또는 구성 파일이 포함됩니다.

이 섹션에서는 Lambda에서 계층을 생성하고 삭제하는 방법을 설명합니다. 계층에 대한 개념 정보와 계층 사용을 고려하는 이유에 대한 자세한 내용은 계층으로 Lambda 종속성 관리 섹션을 참조하세요.

계층 콘텐츠를 패키징한 후 다음 단계는 Lambda에서 계층을 생성하는 것입니다 이 섹션에서는 Lambda 콘솔 또는 Lambda API만 사용하여 계층을 생성하고 삭제하는 방법을 보여줍니다. AWS CloudFormation을 사용하여 계층을 생성하려면 계층으로 AWS CloudFormation 작업 섹션을 참조하세요. AWS Serverless Application Model(AWS SAM)을 사용하여 계층을 생성하려면 계층으로 AWS SAM 작업 섹션을 참조하세요.

계층 생성

계층을 생성하려면 로컬 시스템이나 Amazon Simple Storage Service(S3)에서 계층으로 .zip 파일 아카이브를 업로드합니다. Lambda는 함수에 대한 실행 환경을 설정할 때 계층 콘텐츠를 /opt 디렉토리에 추출합니다.

계층에는 하나 이상의 계층 버전이 있을 수 있습니다. 계층을 작성할 때 Lambda에서 계층 버전을 버전 1로 설정합니다. 언제든지 기존 계층 버전에 대한 권한을 변경할 수 있습니다. 그러나 코드를 업데이트하거나 다른 구성을 변경하려면 계층의 새 버전을 생성해야 합니다.

계층을 생성하려면(콘솔)
  1. Lambda 콘솔의 계층 페이지를 엽니다.

  2. 계층 생성을 선택합니다.

  3. [계층 구성(Layer configuration)]에서 [이름(Name)]에 계층 이름을 입력합니다.

  4. (선택 사항) 설명에 계층에 대한 설명을 입력합니다.

  5. 계층 코드를 업로드하려면 다음 중 하나를 수행하세요.

    • 컴퓨터에서 .zip 파일을 업로드하려면 [zip 파일 업로드(Upload a .zip file)]를 선택합니다. 그리고 [업로드(Upload)]를 선택하여 로컬 .zip 파일을 선택합니다.

    • Amazon S3에서 파일을 업로드하려면 Amazon S3에서 파일 업로드(Upload a file from Amazon S3)를 선택합니다. 그런 다음 Amazon S3 링크 URL에 파일 링크를 입력합니다.

  6. (선택 사항) 호환 아키텍처에서 값을 하나 또는 둘 다 선택합니다. 자세한 내용은 Lambda 함수에 대한 명령 세트 아키텍처의 선택 및 구성 단원을 참조하십시오.

  7. (선택 사항) 호환 런타임에서 계층과 호환되는 런타임을 선택합니다.

  8. (선택 사항) 라이선스의 경우 필요한 라이선스 정보를 입력합니다.

  9. 생성(Create)을 선택합니다.

또는 PublishLayerVersion API를 사용하여 계층을 생성할 수도 있습니다. 예를 들어, 이름, 설명 및 .zip 파일 아카이브를 지정하여 publish-layer-version AWS Command Line Interface(CLI) 명령을 사용할 수 있습니다. 라이선스 정보, 호환 런타임 및 호환 아키텍처 파라미터는 선택 사항입니다.

aws lambda publish-layer-version --layer-name my-layer \ --description "My layer" \ --license-info "MIT" \ --zip-file fileb://layer.zip \ --compatible-runtimes python3.10 python3.11 \ --compatible-architectures "arm64" "x86_64"

다음과 유사한 출력 화면이 표시되어야 합니다.

{ "Content": { "Location": "https://awslambda-us-east-2-layers.s3.us-east-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...", "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=", "CodeSize": 169 }, "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Description": "My layer", "CreatedDate": "2023-11-14T23:03:52.894+0000", "Version": 1, "CompatibleArchitectures": [ "arm64", "x86_64" ], "LicenseInfo": "MIT", "CompatibleRuntimes": [ "python3.10", "python3.11" ] }

publish-layer-version을 호출할 때마다 계층의 새 버전이 생성됩니다.

계층 버전 삭제

계층 버전을 삭제하려면 DeleteLayerVersion API를 사용합니다. 예를 들어, 계층 이름과 계층 버전을 지정하여 delete-layer-version CLI 명령을 사용할 수 있습니다.

aws lambda delete-layer-version --layer-name my-layer --version-number 1

계층 버전을 삭제하면 이를 사용하기 위한 Lambda 함수를 더 이상 구성할 수 없습니다. 그러나 해당 버전을 이미 사용 중인 모든 함수는 이 버전에 계속 액세스할 수 있습니다. 또한 Lambda는 계층 이름에 버전 번호를 재사용하지 않습니다.

할당량을 계산하는 경우에 계층 버전을 삭제하면 더 이상 함수 및 계층 저장에 대한 기본 75GB 할당량에 포함되지 않습니다. 그러나 삭제된 계층 버전을 사용하는 함수의 경우 계층 콘텐츠는 여전히 해당 함수의 배포 패키지 크기 할당량(즉, .zip 파일 아카이브의 경우 250MB)에 포함됩니다.