쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS CDK을 사용하여 C# Lambda 함수 배포

포커스 모드
AWS CDK을 사용하여 C# Lambda 함수 배포 - AWS Lambda

AWS Cloud Development Kit (AWS CDK)은(는) .NET과 같은 최신 프로그래밍 언어 및 프레임워크를 사용하여 클라우드 인프라를 코드로 정의하는 오픈 소스 소프트웨어 개발 프레임워크입니다. AWS CDK프로젝트를 실행하여 AWS CloudFormation 템플릿을 생성한 다음 이를 사용하여 코드를 배포합니다.

AWS CDK을(를) 사용하여 예제 Hello world .NET 애플리케이션을 빌드하고 배포하려면 다음 섹션의 지침을 따르십시오. 샘플 애플리케이션은 API Gateway 엔드포인트와 Lambda 함수로 구성된 기본 API 백엔드를 구현합니다. 엔드포인트에 HTTP GET 요청을 보내면 API Gateway는 Lambda 함수를 간접 호출합니다. 함수는 요청을 처리하는 Lambda 인스턴스의 IP 주소와 함께 Hello world 메시지를 반환합니다.

사전 조건

.NET 8 SDK

.NET 8 SDK 및 런타임을 설치합니다.

AWS CDK 버전 2

AWS CDK의 최신 버전을 설치하는 방법을 알아보려면 AWS Cloud Development Kit (AWS CDK) v2 개발자 안내서AWS CDK(으)로 시작하기를 확인하십시오.

샘플 AWS CDK 애플리케이션 배포

  1. 샘플 애플리케이션을 위한 프로젝트 디렉터리를 생성하고 탐색합니다.

    mkdir hello-world cd hello-world
  2. 다음 명령을 실행하여 새 AWS CDK 애플리케이션을 초기화합니다.

    cdk init app --language csharp

    이 명령은 프로젝트 디렉터리에 다음과 같은 파일 및 디렉터리를 생성합니다

    ├── README.md ├── cdk.json └── src ├── HelloWorld │   ├── GlobalSuppressions.cs │   ├── HelloWorld.csproj │   ├── HelloWorldStack.cs │   └── Program.cs └── HelloWorld.sln
  3. src 디렉터리를 열고 .NET CLI를 사용하여 새 Lambda 함수를 생성합니다. AWS CDK을(를) 사용하여 배포할 함수입니다. 이 예제에서는 lambda.EmptyFunction 템플릿을 사용하여 HelloWorldLambda(이)라는 Hello world 함수를 생성합니다.

    cd src dotnet new lambda.EmptyFunction -n HelloWorldLambda

    이 단계 후에 프로젝트 디렉터리 내부의 디렉터리 구조는 다음과 같아야 합니다.

    ├── README.md ├── cdk.json └── src ├── HelloWorld │   ├── GlobalSuppressions.cs │   ├── HelloWorld.csproj │   ├── HelloWorldStack.cs │   └── Program.cs ├── HelloWorld.sln └── HelloWorldLambda ├── src │   └── HelloWorldLambda │   ├── Function.cs │   ├── HelloWorldLambda.csproj │   ├── Readme.md │   └── aws-lambda-tools-defaults.json └── test └── HelloWorldLambda.Tests ├── FunctionTest.cs └── HelloWorldLambda.Tests.csproj
  4. src/HelloWorld 디렉터리에서 HelloWorldStack.cs 파일을 엽니다. 파일의 내용을 다음 코드로 바꿉니다.

    using Amazon.CDK; using Amazon.CDK.AWS.Lambda; using Amazon.CDK.AWS.Logs; using Constructs; namespace CdkTest { public class HelloWorldStack : Stack { internal HelloWorldStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { var buildOption = new BundlingOptions() { Image = Runtime.DOTNET_8.BundlingImage, User = "root", OutputType = BundlingOutput.ARCHIVED, Command = new string[]{ "/bin/sh", "-c", " dotnet tool install -g Amazon.Lambda.Tools"+ " && dotnet build"+ " && dotnet lambda package --output-package /asset-output/function.zip" } }; var helloWorldLambdaFunction = new Function(this, "HelloWorldFunction", new FunctionProps { Runtime = Runtime.DOTNET_8, MemorySize = 1024, LogRetention = RetentionDays.ONE_DAY, Handler = "HelloWorldLambda::HelloWorldLambda.Function::FunctionHandler", Code = Code.FromAsset("./src/HelloWorldLambda/src/HelloWorldLambda", new Amazon.CDK.AWS.S3.Assets.AssetOptions { Bundling = buildOption }), }); } } }

    Lambda 함수 자체의 정의뿐만 아니라 애플리케이션 코드를 컴파일하고 번들링하는 코드입니다. BundlingOptions 객체를 사용하면 zip 파일의 콘텐츠를 생성하는 데 사용되는 명령 집합과 함께 zip 파일을 생성할 수 있습니다. 이 경우 dotnet lambda package 명령은 zip 파일을 컴파일하고 생성하는 데 사용됩니다.

  5. 애플리케이션을 배포하려면 다음 명령을 입력합니다.

    cdk deploy
  6. .NET Lambda CLI를 사용하여 배포된 Lambda 함수를 간접 호출하십시오.

    dotnet lambda invoke-function HelloWorldFunction -p "hello world"
  7. 테스트를 마친 후 생성한 리소스를 보관하고 싶지 않다면 삭제해도 됩니다. 다음 명령을 실행하여 리소스를 삭제합니다.

    cdk destroy

다음 단계

.NET을 사용하여 Lambda 함수를 빌드하고 배포하기 위해 AWS CDK을(를) 사용하는 방법에 대해 자세히 알아보려면 다음 리소스를 참조하십시오.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.