diff --git a/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts index f8bd04c21..c7405b267 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts @@ -47,7 +47,7 @@ export function buildLambdaFunction(scope: Construct, props: BuildLambdaFunction // Conditional lambda function creation if (!props.existingLambdaObj) { if (props.lambdaFunctionProps) { - return deployLambdaFunction(scope, props.lambdaFunctionProps, undefined, props.vpc); + return deployLambdaFunction(scope, props.lambdaFunctionProps, props.lambdaFunctionProps.functionName, props.vpc); } else { throw Error('Either existingLambdaObj or lambdaFunctionProps is required'); } diff --git a/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts index f76774dbf..090aa0695 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts @@ -447,4 +447,41 @@ test("Test retrieving lambda vpc security group ids", () => { expect(securityGroups).toContain(securityGroup1.securityGroupId); expect(securityGroups).toContain(securityGroup2.securityGroupId); -}); \ No newline at end of file +}); + +test('test buildLambdaFunction with lambdaFunctionProps default id', () => { + const stack = new Stack(); + + defaults.buildLambdaFunction(stack, { + lambdaFunctionProps: { + runtime: lambda.Runtime.NODEJS_14_X, + handler: 'index.handler', + code: lambda.Code.fromAsset(`${__dirname}/lambda`), + } + }); + + expect(stack).toHaveResourceLike('AWS::Lambda::Function', { + Role: { + 'Fn::GetAtt': ['LambdaFunctionServiceRole0C4CDE0B', 'Arn'], + }, + }); +}); + +test('test buildLambdaFunction with lambdaFunctionProps custom id', () => { + const stack = new Stack(); + + defaults.buildLambdaFunction(stack, { + lambdaFunctionProps: { + functionName: 'MyTestFunction', + runtime: lambda.Runtime.NODEJS_14_X, + handler: 'index.handler', + code: lambda.Code.fromAsset(`${__dirname}/lambda`), + } + }); + + expect(stack).toHaveResourceLike('AWS::Lambda::Function', { + Role: { + 'Fn::GetAtt': ['MyTestFunctionServiceRole37517223', 'Arn'], + }, + }); +});