@@ -281,6 +281,21 @@ def _generate_lambdafunction(self, resource, template):
281281 } # type: Dict[str, Any]
282282 lambdafunction_definition ['Properties' ].update (layers_config )
283283
284+ if resource .log_group is not None :
285+ num_days = resource .log_group .retention_in_days
286+ log_name = self ._register_cfn_resource_name (
287+ resource .log_group .resource_name )
288+ log_def = {
289+ 'Type' : 'AWS::Logs::LogGroup' ,
290+ 'Properties' : {
291+ 'LogGroupName' : {
292+ 'Fn::Sub' : '/aws/lambda/${%s}' % cfn_name
293+ },
294+ 'RetentionInDays' : num_days
295+ }
296+ }
297+ resources [log_name ] = log_def
298+
284299 resources [cfn_name ] = lambdafunction_definition
285300 self ._add_iam_role (resource , resources [cfn_name ])
286301
@@ -299,6 +314,11 @@ def _add_iam_role(self, resource, cfn_resource):
299314 role = cast (models .PreCreatedIAMRole , role )
300315 cfn_resource ['Properties' ]['Role' ] = role .role_arn
301316
317+ def _generate_loggroup (self , resource , template ):
318+ # type: (models.LogGroup, Dict[str, Any]) -> None
319+ # Handled in LambdaFunction generation
320+ pass
321+
302322 def _generate_restapi (self , resource , template ):
303323 # type: (models.RestAPI, Dict[str, Any]) -> None
304324 resources = template ['Resources' ]
@@ -1263,9 +1283,22 @@ def _generate_lambdafunction(self, resource, template):
12631283 role = cast (models .PreCreatedIAMRole , resource .role )
12641284 func_definition ['role' ] = role .role_arn
12651285
1286+ if resource .log_group is not None :
1287+ log_group = resource .log_group
1288+ num_days = log_group .retention_in_days
1289+ template ['resource' ].setdefault ('aws_cloudwatch_log_group' , {})[
1290+ log_group .resource_name ] = {
1291+ 'name' : log_group .resource_name ,
1292+ 'retention_in_days' : num_days ,
1293+ }
12661294 template ['resource' ].setdefault ('aws_lambda_function' , {})[
12671295 resource .resource_name ] = func_definition
12681296
1297+ def _generate_log_group (self , resource , remplate ):
1298+ # type: (models.LogGroup, Dict[str, Any]) -> None
1299+ # Handled in LambdaFunction generation
1300+ pass
1301+
12691302 def _generate_restapi (self , resource , template ):
12701303 # type: (models.RestAPI, Dict[str, Any]) -> None
12711304
0 commit comments