SAM (Serverless Application Model) es un Framework para desarrollar y desplegar aplicaciones serverless.
Características
- Toda la configuración es código YAML
- Se pueden generar plantillas complejas de CloudFormation con simples ficheros SAM YAML
- Soporta todo lo incluido en CloudFormation: Outputs, Mappings, Parameters, …
- Solo son necesarios dos comandos para desplegar a AWS
- Usa CodeDeploy para desplegar funciones Lambda
- Puede ejecutar Lambda, API Gateway y DynamoDB en local
- Tiene templates de Policies para aplicar fácilmente definiciones de políticas de IAM
Recetas SAM
Tiene una cabecera que indica que es una plantilla SAM:
Transform: 'AWS::Serverless-2016-10-31'
Utiliza tres helpers que nos ayudan a desplegar elementos básicos:
AWS::Serverless::Function AWS::Serverless::Api AWS::Serverless::SimpleTable
Para empaquetar y desplegar, se puede hacer con CloudFormation o SAM:
sam build aws cloudformation package / sam package aws cloudformation deploy / sam deploy