시작하기 AWS SAM 및 AWS CDK - AWS Serverless Application Model

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

시작하기 AWS SAM 및 AWS CDK

이 항목에서는 AWS CDK 응용 프로그램과 AWS SAMCLI 함께 사용하는 데 필요한 사항을 설명하고 간단한 응용 프로그램을 빌드하고 로컬에서 테스트하기 위한 지침을 제공합니다. AWS CDK

필수 조건

AWS SAMCLI와 함께 사용하려면 AWS CDK AWS CDK, 및 를 설치해야 합니다 AWS SAMCLI.

  • 설치에 대한 자세한 내용은 AWS Cloud Development Kit (AWS CDK) 개발자 안내서의 시작하기 항목을 참조하십시오. AWS CDK AWS CDK

  • 설치에 대한 자세한 내용은 AWS SAMCLI 을 참조하십시오AWS SAM CLI의 설치.

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

를 사용하여 AWS CDK 애플리케이션을 로컬에서 AWS SAMCLI 테스트하려면 Lambda AWS CDK 함수를 포함하는 애플리케이션이 있어야 합니다. 다음 단계를 사용하여 Lambda 함수를 사용하여 기본 AWS CDK 애플리케이션을 생성합니다. 더욱 자세한 정보는 AWS Cloud Development Kit (AWS CDK) 개발자 안내서AWS CDK를 사용하는 서버리스 애플리케이션 생성을 참조하세요.

참고

는 버전 1.135.0부터 AWS CDK v1을 지원하고 AWS CDK 버전 2.0.0부터 시작하는 v2를 AWS SAMCLI 지원합니다.

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

이 자습서에서는 를 사용하는 애플리케이션을 초기화하십시오. AWS CDK TypeScript

실행할 명령:

AWS CDK v2
mkdir cdk-sam-example cd cdk-sam-example cdk init app --language typescript
AWS CDK v1
mkdir cdk-sam-example cd cdk-sam-example cdk init app --language typescript npm install @aws-cdk/aws-lambda

2단계: 애플리케이션에 Lambda 함수 추가

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

AWS CDK v2
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_9, handler: 'app.lambda_handler', code: lambda.Code.fromAsset('./my_function'), }); } }
AWS CDK v1
import * as cdk from '@aws-cdk/core'; import * as lambda from '@aws-cdk/aws-lambda'; export class CdkSamExampleStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); new lambda.Function(this, 'MyFunction', { runtime: lambda.Runtime.PYTHON_3_9, handler: 'app.lambda_handler', code: lambda.Code.fromAsset('./my_function'), }); } }

3단계: Lambda 함수 코드 추가

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

실행할 명령:

mkdir my_function cd my_function touch app.py

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

def lambda_handler(event, context): return "Hello from SAM and the CDK!"

4단계: Lambda 함수 테스트

를 사용하여 애플리케이션에서 AWS SAMCLI 정의한 Lambda 함수를 로컬에서 호출할 수 있습니다. AWS CDK 이를 위해서는 함수 구성 식별자와 합성된 템플릿의 경로가 필요합니다. AWS CloudFormation

실행할 명령:

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

AWS SAM CLI를 사용하여 AWS CDK 애플리케이션을 테스트하는 데 사용할 수 있는 옵션에 대한 자세한 내용은 을 참조하십시오. AWS CDK 애플리케이션의 로컬 테스팅