@@ -67,7 +67,7 @@ def create_lambda_functions(self, function_props: Optional[Dict] = None):
67
67
Parameters
68
68
----------
69
69
function_props: Optional[Dict]
70
- CDK Lambda FunctionProps as dictionary to override defaults
70
+ Dictionary representing CDK Lambda FunctionProps to override defaults
71
71
72
72
Examples
73
73
--------
@@ -88,16 +88,14 @@ def create_lambda_functions(self, function_props: Optional[Dict] = None):
88
88
"""
89
89
handlers = list (self .handlers_dir .rglob ("*.py" ))
90
90
source = Code .from_asset (f"{ self .handlers_dir } " )
91
- props_override = function_props or {}
92
91
logger .debug (f"Creating functions for handlers: { handlers } " )
93
92
if not self .layer_arn :
94
93
raise ValueError (
95
94
"""Lambda Layer ARN cannot be empty when creating Lambda functions.
96
95
Make sure to inject `lambda_layer_arn` fixture and pass at the constructor level"""
97
96
)
98
97
99
- layer = LayerVersion .from_layer_version_arn (self .stack , "layer-arn" , layer_version_arn = self .layer_arn )
100
-
98
+ function_settings_override = function_props or {}
101
99
for fn in handlers :
102
100
fn_name = fn .stem
103
101
fn_name_pascal_case = fn_name .title ().replace ("_" , "" ) # basic_handler -> BasicHandler
@@ -108,24 +106,24 @@ def create_lambda_functions(self, function_props: Optional[Dict] = None):
108
106
"handler" : f"{ fn_name } .lambda_handler" ,
109
107
"tracing" : Tracing .ACTIVE ,
110
108
"runtime" : Runtime .PYTHON_3_9 ,
111
- "layers" : [layer ],
112
- ** props_override ,
109
+ "layers" : [
110
+ LayerVersion .from_layer_version_arn (self .stack , "layer-arn" , layer_version_arn = self .layer_arn )
111
+ ],
112
+ ** function_settings_override ,
113
113
}
114
114
115
- function_python = Function (self .stack , ** function_settings )
115
+ function = Function (self .stack , ** function_settings )
116
116
117
117
aws_logs .LogGroup (
118
118
self .stack ,
119
119
id = f"{ fn_name } -lg" ,
120
- log_group_name = f"/aws/lambda/{ function_python .function_name } " ,
120
+ log_group_name = f"/aws/lambda/{ function .function_name } " ,
121
121
retention = aws_logs .RetentionDays .ONE_DAY ,
122
122
removal_policy = RemovalPolicy .DESTROY ,
123
123
)
124
124
125
125
# CFN Outputs only support hyphen hence pascal case
126
- self .add_cfn_output (
127
- name = fn_name_pascal_case , value = function_python .function_name , arn = function_python .function_arn
128
- )
126
+ self .add_cfn_output (name = fn_name_pascal_case , value = function .function_name , arn = function .function_arn )
129
127
130
128
def deploy (self ) -> Dict [str , str ]:
131
129
"""Creates CloudFormation Stack and return stack outputs as dict
0 commit comments