diff --git a/packages/@aws-cdk/aws-lambda-python/lib/function.ts b/packages/@aws-cdk/aws-lambda-python/lib/function.ts index 9de4881134e30..680c9cf845265 100644 --- a/packages/@aws-cdk/aws-lambda-python/lib/function.ts +++ b/packages/@aws-cdk/aws-lambda-python/lib/function.ts @@ -14,7 +14,7 @@ import { Construct } from '@aws-cdk/core'; */ export interface PythonFunctionProps extends FunctionOptions { /** - * The path to the root directory of the function. + * Path to the source of the function or the location for dependencies. */ readonly entry: string; @@ -70,6 +70,8 @@ export class PythonFunction extends Function { throw new Error('Only `PYTHON` runtimes are supported.'); } + const resolvedHandler =`${index.slice(0, -3)}.${handler}`.replace('/', '.'); + super(scope, id, { ...props, runtime, @@ -78,7 +80,7 @@ export class PythonFunction extends Function { runtime, ...props.bundling, }), - handler: `${index.slice(0, -3)}.${handler}`, + handler: resolvedHandler, }); } } diff --git a/packages/@aws-cdk/aws-lambda-python/test/function.test.ts b/packages/@aws-cdk/aws-lambda-python/test/function.test.ts index 935d4ceffaff7..3a28f276ec7ad 100644 --- a/packages/@aws-cdk/aws-lambda-python/test/function.test.ts +++ b/packages/@aws-cdk/aws-lambda-python/test/function.test.ts @@ -73,7 +73,7 @@ test('PythonFunction with index in a subdirectory', () => { })); Template.fromStack(stack).hasResourceProperties('AWS::Lambda::Function', { - Handler: 'inner/custom_index.custom_handler', + Handler: 'inner.custom_index.custom_handler', }); }); diff --git a/packages/@aws-cdk/aws-lambda-python/test/integ.function.sub.expected.json b/packages/@aws-cdk/aws-lambda-python/test/integ.function.sub.expected.json index 3c44a7a33990e..35e40ea2f0cc6 100644 --- a/packages/@aws-cdk/aws-lambda-python/test/integ.function.sub.expected.json +++ b/packages/@aws-cdk/aws-lambda-python/test/integ.function.sub.expected.json @@ -78,7 +78,7 @@ "Arn" ] }, - "Handler": "inner/custom_index.custom_handler", + "Handler": "inner.custom_index.custom_handler", "Runtime": "python3.7" }, "DependsOn": [