AWS Serverless Application Model (SAM)
คืออะไร
AWS SAM เป็น framework สำหรับพัฒนาและ deploy serverless applications บน AWS
คุณสมบัติหลัก
- เป็น extension ของ CloudFormation — เพิ่ม shorthand syntax สำหรับ serverless
- SAM Template — ใช้
Transform: AWS::Serverless-2016-10-31 - Resource types:
AWS::Serverless::Function— Lambda functionAWS::Serverless::Api— API GatewayAWS::Serverless::SimpleTable— DynamoDB tableAWS::Serverless::Application— nested applicationAWS::Serverless::HttpApi— HTTP APIAWS::Serverless::LayerVersion— Lambda LayerAWS::Serverless::StateMachine— Step Functions
SAM CLI
sam init— สร้าง project ใหม่sam build— build applicationsam package— package แล้ว upload ไป S3sam deploy— deploy ไป CloudFormationsam local invoke— test Lambda locallysam local start-api— รัน API Gateway locallysam local start-lambda— รัน Lambda endpoint locally
SAM + CodeDeploy
- SAM ใช้ CodeDeploy สำหรับ traffic shifting อัตโนมัติ
- Deployment preferences: Canary, Linear, AllAtOnce
- Pre/Post traffic hooks สำหรับ validation