def transform_template(req_data): template_body = get_template_body(req_data) parsed = template_deployer.parse_template(template_body) policy_map = { # SAM Transformer expects this map to be non-empty, but apparently the content doesn't matter (?) 'dummy': 'entry' # 'AWSLambdaBasicExecutionRole': 'arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole', } class MockPolicyLoader(object): def load(self): return policy_map if parsed.get('Transform') == 'AWS::Serverless-2016-10-31': # Note: we need to fix boto3 region, otherwise AWS SAM transformer fails region_before = os.environ.get('AWS_DEFAULT_REGION') if boto3.session.Session().region_name is None: os.environ['AWS_DEFAULT_REGION'] = aws_stack.get_region() try: transformed = transform_sam(parsed, {}, MockPolicyLoader()) return transformed finally: os.environ.pop('AWS_DEFAULT_REGION', None) if region_before is not None: os.environ['AWS_DEFAULT_REGION'] = region_before
def transform_template(req_data) -> Optional[str]: """only returns string when parsing SAM template, otherwise None""" template_body = get_template_body(req_data) parsed = parse_template(template_body) if parsed.get("Transform") == "AWS::Serverless-2016-10-31": policy_map = { # SAM Transformer expects this map to be non-empty, but apparently the content doesn't matter (?) "dummy": "entry" # 'AWSLambdaBasicExecutionRole': 'arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole', } class MockPolicyLoader(object): def load(self): return policy_map # Note: we need to fix boto3 region, otherwise AWS SAM transformer fails region_before = os.environ.get("AWS_DEFAULT_REGION") if boto3.session.Session().region_name is None: os.environ["AWS_DEFAULT_REGION"] = aws_stack.get_region() try: transformed = transform_sam(parsed, {}, MockPolicyLoader()) return json.dumps(transformed) finally: os.environ.pop("AWS_DEFAULT_REGION", None) if region_before is not None: os.environ["AWS_DEFAULT_REGION"] = region_before
def transform_template(req_data) -> Optional[str]: """only returns string when parsing SAM template, otherwise None""" template_body = get_template_body(req_data) parsed = parse_template(template_body) if parsed.get("Transform") == "AWS::Serverless-2016-10-31": # Note: we need to fix boto3 region, otherwise AWS SAM transformer fails region_before = os.environ.get("AWS_DEFAULT_REGION") if boto3.session.Session().region_name is None: os.environ["AWS_DEFAULT_REGION"] = aws_stack.get_region() loader = _create_loader() try: transformed = transform_sam(parsed, {}, loader) return json.dumps(transformed) finally: os.environ.pop("AWS_DEFAULT_REGION", None) if region_before is not None: os.environ["AWS_DEFAULT_REGION"] = region_before