AWSTemplateFormatVersion: '2010-09-09' Resources: LambdaRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - lambda.amazonaws.com Action: - sts:AssumeRole Path: / Policies: - PolicyName: CloudwatchLogs PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - logs:CreateLogGroup Resource: - !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:*" - Effect: Allow Action: - logs:CreateLogStream - logs:PutLogEvents Resource: - !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" LambdaUDFFunction: Type: "AWS::Lambda::Function" Properties: FunctionName: f-lower-python-varchar Role: !GetAtt 'LambdaRole.Arn' Timeout: 300 Code: ZipFile: | import json def handler(event, context): print("Received event: " + json.dumps(event, indent=2)) print(json.dumps(event)) res = [x[0].lower() for x in event['arguments']] ret_json = json.dumps({"results": res}) return ret_json Handler: index.handler Runtime: python3.7