
SAM 템플릿을 CloudFormation 리소스로 변환하고, 서버리스 모범 사례가 내장된 Lambda 함수, IAM 역할 및 정책을 생성합니다.
AWS Serverless Application Model (AWS SAM) transform은 SAM 템플릿을 CloudFormation 템플릿으로 변환하는 AWS CloudFormation 매크로입니다.
SAM transform을 사용하려면 CloudFormation 템플릿의 Transform 섹션에 AWS::Serverless-2016-10-31을 추가하세요.
SAM transform 사용의 이점은 다음과 같습니다:
다음을 template.yaml로 저장하세요:
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
Runtime: nodejs24.x
Handler: index.handler
InlineCode: |
exports.handler = async (event) => {
console.log(event);
}
그런 다음 SAM CLI로 배포하세요:
sam sync --stack-name sam-app
AWS::Serverless::Function 리소스는 수신하는 이벤트를 기록하는 AWS Lambda 함수를 생성합니다.
내부적으로 템플릿은 다음 CloudFormation 템플릿의 JSON 등가물로 변환됩니다:
Resources:
MyFunction:
Type: AWS::Lambda::Function
Properties:
Code:
ZipFile: |
exports.handler = async (event) => {
console.log(event);
}
Handler: index.handler
Role: !GetAtt MyFunctionRole.Arn
Runtime: nodejs24.x
Tags:
- Key: lambda:createdBy
Value: SAM
MyFunctionRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Action:
- sts:AssumeRole
Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Tags:
- Key: lambda:createdBy
Value: SAM
더 자세한 소개는 개발자 안내서의 이 튜토리얼을 참조하세요.
Python 3.8+가 설치되어 있어야 합니다.
가상 환경을 생성하세요:
python3 -m venv .venv
source .venv/bin/activate
의존성을 설정하세요:
make init
테스트를 실행하세요:
make pr
추가 개발 지침은 DEVELOPMENT_GUIDE.md를, 기여 지침은 CONTRIBUTING.md를 참조하세요.
팀과 소통하는 가장 좋은 방법은 GitHub를 통하는 것입니다. 이슈를 생성하거나 토론을 시작할 수 있습니다.
Slack의 #samdev 채널에도 참여할 수 있습니다.