AWS SAM을 사용한 AWS CDK 애플리케이션 로컬 테스트 - AWS 클라우드 개발 키트(AWS CDK) v2

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

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

AWS SAM을 사용한 AWS CDK 애플리케이션 로컬 테스트

AWS SAM CLI를 사용하여 AWS CDK 애플리케이션의 프로젝트 루트 디렉터리에서 다음 명령을 실행하여 AWS CDK 애플리케이션을 로컬로 테스트할 수 있습니다.

AWS CDK 애플리케이션에서 sam local 명령을 실행하기 전에를 실행해야 합니다cdk synth.

실행 시 호출하려는 함수 구성 식별자와 합성된 AWS CloudFormation 템플릿의 경로가 sam local invoke 필요합니다. 귀하의 애플리케이션이 중첩된 스택을 사용하는 경우 이름 충돌을 해결하려면 함수가 정의된 위치에 스택 이름도 필요합니다.

사용량
# Invoke the function FUNCTION_IDENTIFIER declared in the stack STACK_NAME $ sam local invoke <OPTIONS> <STACK_NAME/FUNCTION_IDENTIFIER> # Start all APIs declared in the AWS CDK application $ sam local start-api -t <./cdk.out/CdkSamExampleStack.template.json> <OPTIONS> # Start a local endpoint that emulates AWS Lambda $ sam local start-lambda -t <./cdk.out/CdkSamExampleStack.template.json> <OPTIONS>

예제

다음 예제로 선언된 스택과 함수를 고려해 보십시오.

app = new HelloCdkStack(app, "HelloCdkStack", ... ) class HelloCdkStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { ... new lambda.Function(this, 'MyFunction', { ... }); new HelloCdkNestedStack(this, 'HelloNestedStack' ,{ ... }); } } class HelloCdkNestedStack extends cdk.NestedStack { constructor(scope: Construct, id: string, props?: cdk.NestedStackProps) { ... new lambda.Function(this, 'MyFunction', { ... }); new lambda.Function(this, 'MyNestedFunction', { ... }); } }

다음 명령은 위에 제시된 예제에 정의된 Lambda 함수를 로컬로 간접 호출합니다.

# Invoke MyFunction from the HelloCdkStack $ sam local invoke -t <./cdk.out/HelloCdkStack.template.json> <MyFunction>
# Invoke MyNestedFunction from the HelloCdkNestedStack $ sam local invoke -t <./cdk.out/HelloCdkStack.template.json> <MyNestedFunction>
# Invoke MyFunction from the HelloCdkNestedStack $ sam local invoke -t <./cdk.out/HelloCdkStack.template.json> <HelloNestedStack/MyFunction>