.zip 파일 아카이브로 C# Lambda 함수 빌드 및 배포

.zip 파일 아카이브로 C# Lambda 함수 빌드 및 배포

.NET 배포 패키지(.zip 파일 아카이브)에는 함수의 컴파일된 어셈블리와 모든 어셈블리 종속성이 들어 있어요. 패키지에는 {{proj}}.deps.json 파일도 포함돼요. 이 파일은 함수의 모든 종속성을 .NET 런타임에 알려주고, 런타임을 구성하는 데 사용되는 {{proj}}.runtimeconfig.json 파일도 포함해요.

개별 Lambda 함수를 배포하려면 Amazon.Lambda.Tools .NET Lambda Global CLI를 사용할 수 있어요. dotnet lambda deploy-function 명령을 사용하면 .zip 배포 패키지를 자동으로 만들어서 Lambda에 배포해줘요. 다만 .NET 애플리케이션을 AWS에 배포할 때는 AWS Serverless Application Model(AWS SAM)이나 AWS Cloud Development Kit(AWS CDK) 같은 프레임워크를 사용하는 것을 권장해요.

서버리스 애플리케이션은 보통 특정 비즈니스 작업을 수행하기 위해 함께 작동하는 Lambda 함수와 다른 관리형 AWS 서비스의 조합으로 구성돼요. AWS SAM과 AWS CDK는 Lambda 함수를 다른 AWS 서비스와 함께 대규모로 빌드·배포하는 작업을 단순화해요. AWS SAM 템플릿 사양은 서버리스 애플리케이션을 구성하는 Lambda 함수, API, 권한, 구성 및 기타 AWS 리소스를 설명하는 간결하고 깔끔한 구문을 제공해요. AWS CDK를 사용하면 클라우드 인프라를 코드로 정의해서 .NET 같은 현대적인 프로그래밍 언어와 프레임워크로 클라우드에서 안정적이고 확장 가능하며 비용 효율적인 애플리케이션을 구축할 수 있어요. AWS CDK와 AWS SAM은 모두 .NET Lambda Global CLI를 사용해서 함수를 패키징해요.

.NET Core CLI 사용으로 C# 함수에 Lambda 레이어를 사용할 수는 있지만, 권장하지 않아요. 레이어를 사용하는 C# 함수는 Init 단계 동안 공유 어셈블리를 메모리에 수동으로 로드해서 콜드 스타트 시간이 늘어날 수 있어요. 대신 모든 공유 코드를 컴파일 시점에 포함해서 런타임에 어셈블리를 로드하는 성능 영향을 피하세요.

AWS SAM, AWS CDK, .NET Lambda Global CLI를 사용해 .NET Lambda 함수를 빌드·배포하는 방법은 다음 섹션에서 확인할 수 있어요.

주제(Topics)

더 알아보기 (Learn more)

C# Lambda 함수 빌드 및 배포 방법에 대한 자세한 내용은 AWS Lambda 개발자 안내서를 참고하세요.