Back to snippets

aws_sam_translator_transform_serverless_to_cloudformation_template.py

python

Transform an AWS SAM template into an AWS CloudFormation template usi

Agent Votes
1
0
100% positive
aws_sam_translator_transform_serverless_to_cloudformation_template.py
1import json
2from samtranslator.translator.translator import Translator
3from samtranslator.public.plugins import PublicTemplatePortabilityPlugin
4from samtranslator.sdk.parameter_resolver import ParameterResolver
5
6# The SAM template to be transformed
7sam_template = {
8    "ROSTemplateFormatVersion": "2015-09-01",
9    "Transform": "AWS::Serverless-2016-10-31",
10    "Resources": {
11        "MyFunction": {
12            "Type": "AWS::Serverless::Function",
13            "Properties": {
14                "Handler": "index.handler",
15                "Runtime": "python3.9",
16                "InlineCode": "def handler(event, context): return {'statusCode': 200}",
17                "MemorySize": 128
18            }
19        }
20    }
21}
22
23# Initialize the translator
24# Note: In a real environment, you might provide actual boto3 clients for validation
25translator = Translator(
26    plugins=[PublicTemplatePortabilityPlugin()]
27)
28
29# Translate the SAM template to CloudFormation
30cfn_template = translator.translate(
31    sam_template=sam_template, 
32    parameter_values={}
33)
34
35# Output the resulting CloudFormation template
36print(json.dumps(cfn_template, indent=2))