AWS SAM에서 네이티브 AOT 컴파일로 .NET Lambda 함수 빌드 - AWS Serverless Application Model

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SAM에서 네이티브 AOT 컴파일로 .NET Lambda 함수 빌드

AWS Serverless Application Model(AWS SAM)을 사용하여 .NET 8 AWS Lambda 함수를 빌드하고 패키징하면 네이티브 어헤드 오브 타임(AOT) 컴파일을 활용하여 AWS Lambda 콜드 스타트 시간을 개선할 수 있습니다.

.NET 8 네이티브 AOT 개요

전통적으로 .NET Lambda 함수의 콜드 스타트 시간은 사용자 경험, 시스템 지연 시간, 서버리스 애플리케이션 사용 비용에 영향을 미칩니다. .NET 네이티브 AOT 컴파일을 사용하면 Lambda 함수의 콜드 스타트 시간을 개선할 수 있습니다. .NET 8용 네이티브 AOT에 대한 자세한 내용은 Dotnet GitHub 리포지토리네이티브 AOT 사용을 참조하세요.

.NET 8 Lambda 함수와 함께 AWS SAM 사용

다음을 수행하여 .NET 8 Lambda 함수에서 AWS Serverless Application Model(AWS SAM)을 구성합니다.

  • 귀하의 개발 기기에 사전 조건을 설치합니다.

  • AWS SAM 템플릿에서 .NET 8 Lambda 함수를 정의합니다.

  • AWS SAM CLI를 사용하여 애플리케이션을 구축하십시오.

사전 조건 설치

다음은 필수적 사전 조건입니다.

  • 이 AWS SAM CLI

  • .NET Core CLI

  • Amazon.Lambda.Tools .NET Core Global Tool

  • Docker

AWS SAM CLI 설치
  1. 이미 AWS SAM CLI가 설치되어 있는지 확인하려면 다음을 실행합니다.

    sam --version
  2. AWS SAM CLI을 설치하려면 AWS SAM CLI 설치을 잠조하세요.

  3. AWS SAM CLI의 설치된 버전을 업그레이드하려면 AWS SAMCLI업그레이드 을 잠조하세요.

.NET Core CLI 설치
  1. .NET Core CLI를 다운로드하고 설치하려면 Microsoft 웹 사이트에서 .NET 다운로드를 잠조하세요.

  2. .NET Core CLI에 대한 자세한 내용은 AWS Lambda개발자 가이드.NET Core CLI를 잠조하세요.

Amazon.Lambda.Tools .NET Core Global Tool 설치
  1. 다음 명령 실행:

    dotnet tool install -g Amazon.Lambda.Tools
  2. 이 도구가 이미 설치되어 있으면 다음 명령을 사용하여 최신 버전인지 확인할 수 있습니다.

    dotnet tool update -g Amazon.Lambda.Tools
  3. Amazon.Lambda.Tools .NET Core Global에 대한 자세한 내용은 GitHub의 AWS Extensions for .NET CLI 리포지토리를 잠조하세요.

Docker 설치

AWS SAM 템플릿에서 .NET 8 Lambda 함수 정의

AWS SAM 템플릿에서 .NET8 Lambda 함수를 정의하려면 다음을 수행합니다.

  1. 선택한 시작 디렉터리에서 다음 명령을 실행합니다.

    sam init
  2. AWS Quick Start Templates을 선택하여 시작 템플릿을 선택합니다.

  3. Hello World Example 템플릿을 선택합니다.

  4. n을 입력하여 가장 많이 사용하는 런타임 및 패키지 유형을 사용하지 않도록 선택합니다.

  5. 런타임에서 dotnet8을 선택합니다.

  6. 패키지 유형에서 Zip을 선택합니다.

  7. 스타터 템플릿에서 Hello World Example using native AOT를 선택합니다.

Docker 설치
Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src/HelloWorldAot/ Handler: bootstrap Runtime: dotnet8 Architectures: - x86_64 Events: HelloWorldAot: Type: Api Properties: Path: /hello Method: get

AWS SAMCLI를 사용한 애플리케이션 구축

프로젝트의 루트 디렉터리에서 sam build을 실행하여 애플리케이션 구축을 시작합니다. .NET 8 프로젝트 파일에 PublishAot 속성을 정의한 경우 AWS SAM CLI가 네이티브 AOT 컴파일을 사용하여 빌드합니다. PublishAot속성에 대한 자세한 내용은 Microsoft의 .NET 설명서에서 네이티브 AOT 배포를 잠조하세요.

함수를 구축하려면 AWS SAM CLI가 Amazon.Lambda.Tools .NET Core Global Tool을 사용하는 .NET Core CLI를 간접 호출합니다.

참고

구축 시 .sln 파일이 프로젝트의 동일 또는 상위 디렉터리에 있는 경우 .sln 파일이 들어있는 디렉터리가 컨테이너에 마운트됩니다. .sln 파일을 찾을 수 없는 경우 프로젝트 폴더만 마운트됩니다. 따라서 다중 프로젝트 응용 프로그램을 구축하는 경우 .sln 파일이 속성에 있는지 확인하십시오.

자세히 알아보기

.NET 8 Lambda 함수 빌드에 대한 자세한 내용은 AWS Lambda용 .NET 8 런타임 소개를 참조하세요.

sam build 명령에 대한 참조는 sam build를 확인하세요.