Back to snippets
aws_sam_translator_transform_serverless_to_cloudformation_template.py
pythonTransform 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))