로컬 테스트 시작하기 - AWS 클라우드 개발 키트(AWS CDK) v2

CDK AWS v2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원이 종료되었습니다.

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

로컬 테스트 시작하기

이 주제에서는 AWS CDK 애플리케이션에서 AWS SAM CLI를 사용하는 데 필요한 사항을 설명하고 간단한 AWS CDK 애플리케이션을 구축하고 로컬에서 테스트하기 위한 지침을 제공합니다.

사전 조건

로컬에서 테스트하려면 AWS SAM CLI를 설치해야 합니다. 설치 지침은 AWS SAM CLI 설치를 참조하세요.

AWS CDK 애플리케이션 생성 및 로컬 테스트

AWS SAM CLI를 사용하여 AWS CDK 애플리케이션을 로컬에서 테스트하려면 Lambda 함수가 포함된 AWS CDK 애플리케이션이 있어야 합니다. 다음 단계에 따라 Lambda 함수를 사용하여 기본 AWS CDK 애플리케이션을 생성합니다. 자세한 내용은 AWS 클라우드 개발 키트(AWS CDK) 개발자 안내서의 AWS CDK를 사용하여 서버리스 애플리케이션 생성을 참조하세요.

1단계: AWS CDK 애플리케이션 생성

이 자습서에서는 TypeScript를 사용하는 AWS CDK 애플리케이션을 초기화합니다.

실행할 명령:

$ mkdir cdk-sam-example $ cd cdk-sam-example $ cdk init app --language typescript
2단계: 애플리케이션에 Lambda 함수 추가

lib/cdk-sam-example-stack.ts 안의 코드를 다음으로 바꿉니다.

import { Stack, StackProps } from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as lambda from 'aws-cdk-lib/aws-lambda'; export class CdkSamExampleStack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); new lambda.Function(this, 'MyFunction', { runtime: lambda.Runtime.PYTHON_3_12, handler: 'app.lambda_handler', code: lambda.Code.fromAsset('./my_function'), }); } }
3단계: Lambda 함수 코드 추가

my_function이라는 디렉터리를 생성합니다. 해당 디렉터리에서 app.py라는 파일을 만듭니다.

실행할 명령:

macOS / Linux
$ mkdir my_function $ cd my_function $ touch app.py
Windows
$ mkdir my_function $ cd my_function $ type nul > app.py
PowerShell
$ mkdir my_function $ cd my_function $ New-Item -Path "app.py”

다음 코드를 app.py에 추가합니다.

def lambda_handler(event, context): return "Hello from SAM and the CDK!"
4단계: Lambda 함수 테스트

AWS SAM CLI를 사용하여 AWS CDK 애플리케이션에서 정의한 Lambda 함수를 로컬로 호출할 수 있습니다. 이렇게 하려면 함수 구문 식별자와 synthesized AWS CloudFormation 템플릿의 경로가 필요합니다.

다음 명령을 실행하여 lib 디렉터리로 돌아갑니다.

$ cd ..

실행할 명령:

$ cdk synth --no-staging
$ sam local invoke MyFunction --no-event -t ./cdk.out/CdkSamExampleStack.template.json

출력 결과 예:

Invoking app.lambda_handler (python3.9)

START RequestId: 5434c093-7182-4012-9b06-635011cac4f2 Version: $LATEST
"Hello from SAM and the CDK!"
END RequestId: 5434c093-7182-4012-9b06-635011cac4f2
REPORT RequestId: 5434c093-7182-4012-9b06-635011cac4f2	Init Duration: 0.32 ms	Duration: 177.47 ms	Billed Duration: 178 ms	Memory Size: 128 MB	Max Memory Used: 128 MB