기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Lambda 계층 공유
Lambda 계층에서 기능을 구현한 경우 글로벌 인스턴스를 호스팅하지 않고 계층을 공유할 수 있습니다. 이러한 방식으로 계층을 공유하면 다른 사용자가 계층의 인스턴스를 자신의 계정에 배포할 수 있습니다. 따라서 클라이언트 애플리케이션이 계층의 전역 인스턴스에 의존하지 않게 됩니다. 를 AWS Serverless Application Repository 사용하면 이러한 방식으로 Lambda 계층을 쉽게 공유할 수 있습니다.
Lambda 계층에 대한 자세한 내용은 AWS Lambda 개발자 안내서의 AWS Lambda 계층을 참조하세요.
작동 방식
다음은 AWS Serverless Application Repository를 사용하여 계층을 공유하는 단계입니다. 이렇게 하면 사용자 AWS 계정에 계층의 복사본을 생성할 수 있습니다.
-
계층을 리소스로 포함하는 AWS SAM 템플릿, 즉
AWS::Serverless::LayerVersion
또는AWS::Lambda::LayerVersion
리소스를 사용하여 서버리스 애플리케이션을 정의합니다. -
애플리케이션을에 게시 AWS Serverless Application Repository하고 공유(공개 또는 비공개)합니다.
-
고객이 애플리케이션을 배포하여 자신의 AWS 계정에 계층의 복사본을 생성합니다. 이제 고객은 클라이언트 애플리케이션에서 AWS 계정에 있는 계층의 Amazon 리소스 이름(ARN)을 참조할 수 있습니다.
예제
다음은 공유하려는 Lambda 계층이 포함된 애플리케이션의 예제 AWS SAM 템플릿입니다.
Resources: SharedLayer: Type: AWS::Serverless::LayerVersion Properties: LayerName: shared-layer ContentUri: source/layer-code/ CompatibleRuntimes: - python3.7 Outputs: LayerArn: Value: !Ref SharedLayer
고객이에서 애플리케이션을 배포하면 AWS 계정에 AWS Serverless Application Repository계층이 생성됩니다. 계층의 ARN은 다음과 같습니다.
arn:aws:lambda:us-east-1:012345678901:layer:shared-layer:1
이제 고객은 다음 예와 같이 자체 클라이언트 애플리케이션에서 이 ARN을 참조할 수 있습니다.
Resources: MyFunction: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: python3.7 CodeUrl: source/app-code/ Layers: - arn:aws:lambda:us-east-1:012345678901:layer:shared-layer:1