Commit 1dddb7d 1 parent 8e802f4 commit 1dddb7d Copy full SHA for 1dddb7d
File tree 3 files changed +45
-0
lines changed
packages/@aws-cdk/custom-resources
3 files changed +45
-0
lines changed Original file line number Diff line number Diff line change 1
1
import { CustomResource , CustomResourceProvider } from '@aws-cdk/aws-cloudformation' ;
2
2
import * as iam from '@aws-cdk/aws-iam' ;
3
3
import * as lambda from '@aws-cdk/aws-lambda' ;
4
+ import * as logs from '@aws-cdk/aws-logs' ;
4
5
import * as cdk from '@aws-cdk/core' ;
5
6
import * as fs from 'fs' ;
6
7
import * as path from 'path' ;
@@ -235,6 +236,14 @@ export interface AwsCustomResourceProps {
235
236
* @default Duration.minutes(2)
236
237
*/
237
238
readonly timeout ?: cdk . Duration
239
+
240
+ /**
241
+ * The number of days log events of the Lambda function implementing
242
+ * this custom resource are kept in CloudWatch Logs.
243
+ *
244
+ * @default logs.RetentionDays.INFINITE
245
+ */
246
+ readonly logRetention ?: logs . RetentionDays ;
238
247
}
239
248
240
249
/**
@@ -292,6 +301,7 @@ export class AwsCustomResource extends cdk.Construct implements iam.IGrantable {
292
301
lambdaPurpose : 'AWS' ,
293
302
timeout : props . timeout || cdk . Duration . minutes ( 2 ) ,
294
303
role : props . role ,
304
+ logRetention : props . logRetention ,
295
305
} ) ;
296
306
this . grantPrincipal = provider . grantPrincipal ;
297
307
Original file line number Diff line number Diff line change 87
87
"@aws-cdk/aws-cloudformation" : " 0.0.0" ,
88
88
"@aws-cdk/aws-iam" : " 0.0.0" ,
89
89
"@aws-cdk/aws-lambda" : " 0.0.0" ,
90
+ "@aws-cdk/aws-logs" : " 0.0.0" ,
90
91
"@aws-cdk/aws-sns" : " 0.0.0" ,
91
92
"@aws-cdk/aws-stepfunctions" : " 0.0.0" ,
92
93
"@aws-cdk/aws-stepfunctions-tasks" : " 0.0.0" ,
97
98
"@aws-cdk/aws-cloudformation" : " 0.0.0" ,
98
99
"@aws-cdk/aws-iam" : " 0.0.0" ,
99
100
"@aws-cdk/aws-lambda" : " 0.0.0" ,
101
+ "@aws-cdk/aws-logs" : " 0.0.0" ,
100
102
"@aws-cdk/aws-sns" : " 0.0.0" ,
101
103
"@aws-cdk/aws-stepfunctions" : " 0.0.0" ,
102
104
"@aws-cdk/aws-stepfunctions-tasks" : " 0.0.0" ,
Original file line number Diff line number Diff line change 1
1
import '@aws-cdk/assert/jest' ;
2
2
import * as iam from '@aws-cdk/aws-iam' ;
3
+ import * as logs from '@aws-cdk/aws-logs' ;
3
4
import * as cdk from '@aws-cdk/core' ;
4
5
import { AwsCustomResource , AwsCustomResourcePolicy , PhysicalResourceId } from '../../lib' ;
5
6
@@ -488,3 +489,35 @@ test('getDataString', () => {
488
489
}
489
490
} ) ;
490
491
} ) ;
492
+
493
+ test ( 'can specify log retention' , ( ) => {
494
+ // GIVEN
495
+ const stack = new cdk . Stack ( ) ;
496
+
497
+ // WHEN
498
+ new AwsCustomResource ( stack , 'AwsSdk' , {
499
+ onCreate : {
500
+ service : 'service' ,
501
+ action : 'action' ,
502
+ physicalResourceId : PhysicalResourceId . of ( 'id' )
503
+ } ,
504
+ logRetention : logs . RetentionDays . ONE_WEEK ,
505
+ policy : AwsCustomResourcePolicy . fromSdkCalls ( { resources : AwsCustomResourcePolicy . ANY_RESOURCE } )
506
+ } ) ;
507
+
508
+ // THEN
509
+ expect ( stack ) . toHaveResource ( 'Custom::LogRetention' , {
510
+ LogGroupName : {
511
+ 'Fn::Join' : [
512
+ '' ,
513
+ [
514
+ '/aws/lambda/' ,
515
+ {
516
+ Ref : 'AWS679f53fac002430cb0da5b7982bd22872D164C4C'
517
+ }
518
+ ]
519
+ ]
520
+ } ,
521
+ RetentionInDays : 7
522
+ } ) ;
523
+ } ) ;
You can’t perform that action at this time.
0 commit comments