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-upper-javascript-varchar Role: !GetAtt 'LambdaRole.Arn' Timeout: 300 Code: ZipFile: | exports.handler = async (event) => { console.log('Received event:', JSON.stringify(event, null, 2)); var res = event.arguments.map((x) => x[0].toUpperCase()); var ret_json = JSON.stringify({"results": res}); return ret_json }; Handler: index.handler Runtime: nodejs14.x