Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to transform a Serverless Application Model (SAM) template to Cloudformation?

From this answer I understand that SAM is a transform of Cloudformation.

Is there a way to get the transformed Cloudformation template from a SAM template via the console, CLI, or another way?

like image 968
Victor Avatar asked Apr 06 '20 01:04

Victor


2 Answers

For SAM projects already deployed, you should find the native CloudFormation template, post transformation, in the CloudFormation console. Select your stack, then open the Template tab. You can also retrieve this via the awscli using aws cloudformation get-template.

You can also use the SAM cli, for example:

sam package \
  --output-template-file output.yaml \
  --s3-bucket mybucketname
like image 193
jarmod Avatar answered Sep 22 '22 22:09

jarmod


I'm guessing you want to convert packaged SAM Template to a vanilla Cloudformation template.

You can achieve this with the following easy steps:

pip install aws-sam-translator docopt

wget https://raw.githubusercontent.com/awslabs/serverless-application- model/develop/bin/sam-translate.py`

python sam-translate.py --template-file=input_file.yml --output-template=output_file.json

Now you have a packaged vanilla CloudFormation template at output_file.json

More on this at https://github.com/awslabs/serverless-application-model/blob/develop/bin/sam-translate.py

like image 42
Akshay Ramachandran Avatar answered Sep 23 '22 22:09

Akshay Ramachandran