Serverless-sam is a plugin for the Serverless framework that makes it easy to create Serverless Application Model (SAM) templates from an application. The plugin adds the sam
command to the serverless cli.
From your Serverless application directory, use npm
to install the plugin:
$ npm install --save-dev serverless-sam
Once you have installed the plugin, add it to your serverless.yml
file in the plugins
sections.
service: my-serverless-service
plugins:
- serverless-sam
frameworkVersion: ">=1.1.0 <2.0.0"
...
Use the sam export
command to generate a SAM definition from your service. Use the --output
or -o
option to set the name for the SAM template file.
$ serverless sam export --output ./sam-template.yml
Once you have exported the template, you can follow the standard procedure with the AWS CLI to deploy the service. First, the package command reads the generated templates, uploads the packaged functions to an S3 bucket for deployment, and generates an output template with the S3 links to the function packages.
$ aws cloudformation package \
--template-file /path_to_template/template.yaml \
--s3-bucket bucket-name \
--output-template-file packaged-template.yaml
The next step is to deploy the output template from the package
command:
$ aws cloudformation deploy \
--template-file /path_to_template/packaged-template.yaml \
--stack-name my-new-stack \
--capabilities CAPABILITY_IAM