기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS SAM에서 AWS CDK 애플리케이션의 로컬 테스트
AWS SAM CLI를 사용하여 귀하의 AWS CDK 애플리케이션의 프로젝트 루트 디렉터리에서 다음 명령을 실행하여 AWS CDK 애플리케이션을 로컬에서 테스트할 수 있습니다.
sam local애플리케이션에서 AWS CDK 명령을 실행하기 전에 cdk synth
을 먼저 실행해야 합니다.
sam local invoke의 실행 시 간접 호출하려는 함수 구성 식별자와 합성된 AWS CloudFormation 템플릿에 이르는 경로가 필요합니다. 귀하의 애플리케이션이 중첩된 스택을 사용하는 경우 이름 충돌을 해결하려면 함수가 정의된 위치에 스택 이름도 필요합니다.
사용량:
# 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